home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2004 #2 / Amiga Plus CD - 2004 - No. 02.iso / AmiSoft / Dev / cross / Annotate.lha / annotate / robotki2.asm < prev   
Encoding:
Assembly Source File  |  2003-12-23  |  113.0 KB  |  2,105 lines

  1. ;
  2. ;       Disassembled by:
  3. ;               DASMx object code disassembler
  4. ;               (c) Copyright 1996-1999   Conquest Consultants
  5. ;               Version 1.30 (Oct  6 1999)
  6. ;
  7. ;       File:           robotki!.bin
  8. ;
  9. ;       Size:           4096 bytes
  10. ;       Checksum:       00F5
  11. ;       CRC-32:         4671B7F7
  12. ;
  13. ;       Date:           Wed Dec 03 12:39:48 2003
  14. ;
  15. ;       CPU:            Signetics 2650 (2650 family)
  16. ;
  17. ;Hardware Equates/Memory Map----------------------------------------------
  18. ;                   $0000..$0FFF: ROM (first 4K of cartridge)
  19. ;                   $1000..$17FF: unmapped
  20. ;                   $1800..$18CF: upper screen
  21. ;                   $18D0..$18EF: user RAM
  22. SPRITE0Y        equ $18F0
  23. SPRITE0X        equ $18F1
  24. SPRITE1Y        equ $18F2
  25. SPRITE1X        equ $18F3
  26. SPRITE2Y        equ $18F4
  27. SPRITE2X        equ $18F5
  28. SPRITE3Y        equ $18F6
  29. SPRITE3X        equ $18F7
  30. ;                   $18F8..$18FB: user RAM
  31. CRTCVPR         equ $18FC        ;crtc vertical position register
  32. PITCH           equ $18FD        ;also other uses
  33. ;    bit  7:                      0 = normal mode
  34. ;                                 1 = alternate character mode colour 2x2
  35. ;    bits 6..0:                   pitch
  36. VOLUME          equ $18FE        ;also other uses
  37. ;    bits 7..5:                   horizontal scanline scrolling (0..7)
  38. ;    bit  4:                      noise on/off
  39. ;    bit  3:                      tones on/off
  40. ;    bits 2..0:                   volume (0..7)
  41. CHARLINE        equ $18FF        ;current character line
  42. P1LEFTKEYS      equ $1900
  43. ;    bits 7..4:                   unknown
  44. ;    bit  3:                      p1 (left) '1' button
  45. ;    bit  2:                      p1 (left) '4' button
  46. ;    bit  1:                      p1 (left) '7' button
  47. ;    bit  0:                      p1 (left) 'E' button (Enter)
  48. P1MIDDLEKEYS    equ $1901
  49. ;    bits 7..4:                   unknown
  50. ;    bit  3:                      p1 (left) '2' button
  51. ;    bit  2:                      p1 (left) '5' button
  52. ;    bit  1:                      p1 (left) '8' button
  53. ;    bit  0:                      p1 (left) '0' button
  54. P1RIGHTKEYS     equ $1902
  55. ;    bits 7..4:                   unknown
  56. ;    bit  3:                      p1 (left) '3' button
  57. ;    bit  2:                      p1 (left) '6' button
  58. ;    bit  1:                      p1 (left) '9' button
  59. ;    bit  0:                      p1 (left) 'C' button (Clear)
  60. P1PALLADIUM     equ $1903
  61. ;    bits 7..4:                   unknown
  62. ;    bit  3:                      p1 (right) Palladium button #1
  63. ;    bit  2:                      p1 (right) Palladium button #2
  64. ;    bit  1:                      p1 (right) Palladium button #3
  65. ;    bit  0:                      p1 (right) Palladium button #4
  66. P2LEFTKEYS      equ $1904
  67. ;    bits 7..4:                   unknown
  68. ;    bit  3:                      p2 (right) '1' button
  69. ;    bit  2:                      p2 (right) '4' button
  70. ;    bit  1:                      p2 (right) '7' button
  71. ;    bit  0:                      p2 (right) 'E' button (Enter)
  72. P2MIDDLEKEYS    equ $1905
  73. ;    bits 7..4:                   unknown
  74. ;    bit  3:                      p2 (right) '2' button
  75. ;    bit  2:                      p2 (right) '5' button
  76. ;    bit  1:                      p2 (right) '8' button
  77. ;    bit  0:                      p2 (right) '0' button
  78. P2RIGHTKEYS     equ $1906
  79. ;    bits 7..4:                   unknown
  80. ;    bit  3:                      p2 (right) '3' button
  81. ;    bit  2:                      p2 (right) '6' button
  82. ;    bit  1:                      p2 (right) '9' button
  83. ;    bit  0:                      p2 (right) 'C' button (Clear)
  84. P2PALLADIUM     equ $1907
  85. ;    bits 7..4:                   unknown
  86. ;    bit  3:                      p2 (right) Palladium button #1
  87. ;    bit  2:                      p2 (right) Palladium button #2
  88. ;    bit  1:                      p2 (right) Palladium button #3
  89. ;    bit  0:                      p2 (right) Palladium button #4
  90. CONSOLE         equ $1908
  91. ;    bits 7..3:                   unknown
  92. ;    bit  2:                      DIFFICULTY button
  93. ;    bit  1:                      OPTION button
  94. ;    bit  0:                      START button
  95. ;                   $1909..$197F: unmapped
  96. ;                   $1980..$1987: sprite #0
  97. ;                   $1988..$198F: sprite #1
  98. ;                   $1990..$1997: sprite #2
  99. ;                   $1998..$199F: sprite #3
  100. UDC0            equ $19A0
  101. ;                   $19A0..$19A7: user-defined character #0
  102. UDC1            equ $19A8
  103. ;                   $19A8..$19AF: user-defined character #1
  104. UDC2            equ $19B0
  105. ;                   $19B0..$19B7: user-defined character #2
  106. UDC3            equ $19B8
  107. ;                   $19B8..$19BF: user-defined character #3
  108. ;                   $19C0..$19F7: unmapped
  109. RESOLUTION      equ $19F8
  110. ;    bit  7:                      0 = normal mode
  111. ;                                 1 = block graphics mode
  112. ;    bit  6:                      0 = low-res mode
  113. ;                                 1 = high-res mode
  114. ;    bits 5..0:                   rectangle descriptions in block graphics mode
  115. BGCOLOUR        equ $19F9
  116. ;    bit  7:                      0 = low-res mode
  117. ;                                 1 = high-res mode
  118. ;    bit  6:                      paddle interpolation (switches between axes of analog sticks)
  119. ;    bits 5..3:                   colours of tile set 0
  120. ;    bits 2..0:                   background colour
  121. SPRITES23CTRL   equ $19FA
  122. ;    bit  7:                      0 = sprite #2 double-height
  123. ;                                 1 = sprite #2 normal
  124. ;    bit  6:                      0 = sprite #3 double-height
  125. ;                                 1 = sprite #3 normal
  126. ;    bits 5..3:                   colours of sprite #2
  127. ;    bits 2..0:                   colours of sprite #3
  128. SPRITES01CTRL   equ $19FB
  129. ;    bit  7:                      0 = sprite #0 double-height
  130. ;                                 1 = sprite #0 normal
  131. ;    bit  6:                      0 = sprite #1 double-height
  132. ;                                 1 = sprite #1 normal
  133. ;    bits 5..3:                   colours of sprite #0
  134. ;    bits 2..0:                   colours of sprite #2
  135. BGCOLLIDE       equ $19FC
  136. ;    bits 7..4:                   unknown
  137. ;    bits 3..0:                   collision between sprites #3..#0 (respectively) and background
  138. SPRITECOLLIDE   equ $19FD
  139. ;    bits 7..6:                   unknown
  140. ;    bit 5:                       sprites #2/#3 collision
  141. ;    bit 4:                       sprites #1/#3 collision
  142. ;    bit 3:                       sprites #1/#2 collision
  143. ;    bit 2:                       sprites #0/#3 collision
  144. ;    bit 1:                       sprites #0/#3 collision
  145. ;    bit 0:                       sprites #0/#3 collision
  146. P2PADDLE        equ $19FE
  147. P1PADDLE        equ $19FF
  148. ;                   $1A00..$1ACF: lower screen
  149. ;                   $1AD0..$1AFF: user RAM
  150. ;                   $1B00..$1FFF: unmapped
  151. ;                   $2000..$7FFF: ROM (last 24K of cartridge)
  152. ;2650 Equates-------------------------------------------------------------
  153. z               equ 0
  154. eq              equ z
  155. p               equ 1
  156. gt              equ p
  157. n               equ 2
  158. lt              equ n
  159. un              equ 3
  160. ;-------------------------------------------------------------------------
  161.         org     $0000
  162. ;
  163.         eorz    r0           ;r0 = 0;                                   ;1
  164.         bctr,un L0004        ;goto L0004;                               ;2
  165. ;
  166.         db      $17
  167. ;
  168. L0004:
  169.         lpsu                 ;PSU = r0;                                 ;2
  170.         lpsl                 ;PSL = r0;                                 ;2
  171.         ppsu    $20          ;PSU |= %00100000;                         ;2
  172.         ppsl    $02          ;PSL |= %00000010;                         ;2
  173.         strz    r1           ;r1 = r0;                                  ;1
  174.         stra,r0 $18FA        ;*($18FA) = r0; // user RAM                ;3
  175.         stra,r1 CRTCVPR      ;CRTCVPR = r1; // hardware registers       ;3
  176. L0011:
  177.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  178.         bcfr,eq L0011        ;if != goto L0011;                         ;2
  179. L0015:
  180.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  181.         bctr,eq L0015        ;if == goto L0015;                         ;2
  182. L0019:
  183.         stra,r0 $17FF,r1     ;*($17FF + r1) = r0;                       ;3
  184.         stra,r0 $19FF,r1     ;*($19FF + r1) = r0;                       ;3
  185.         stra,r0 $18FF,r1     ;*($18FF + r1) = r0;                       ;3
  186.         bdrr,r1 L0019        ;if (--r1 != 0) goto L0019;                ;2
  187.         bsta,un L0A11        ;gosub L0A11;                              ;3
  188.         loda,r0 $0DFB        ;r0 = *($0DFB); // ROM                     ;3
  189.         stra,r0 $1AF5        ;*($1AF5) = r0; // user RAM                ;3
  190.         lodi,r0 $10          ;r0 = $10;                                 ;2
  191.         lodi,r1 $04          ;r1 = $04;                                 ;2
  192. L0031:
  193.         stra,r0 $180A,r1     ;*($180A + r1) = r0;                       ;3
  194.         bdrr,r1 L0031        ;if (--r1 != 0) goto L0031;                ;2
  195.         eorz    r0           ;r0 = 0;                                   ;1
  196.         bcta,un L00B1        ;goto L00B1;                               ;3
  197. ;
  198. L003A:
  199.         bsta,un L0A95        ;gosub L0A95;                              ;3
  200.         loda,r0 CONSOLE      ;r0 = CONSOLE; // hardware registers       ;3
  201.         strz    r1           ;r1 = r0;                                  ;1
  202.         andi,r0 $01          ;r0 &= %00000001;                          ;2
  203.         bcfr,eq L0052        ;if != goto L0052;                         ;2
  204.         lodz    r1           ;r0 = r1;                                  ;1
  205.         andi,r0 $02          ;r0 &= %00000010;                          ;2
  206.         bcfa,eq L00AA        ;if != goto L00AA;                         ;3
  207.         andi,r1 $04          ;r1 &= %00000100;                          ;2
  208.         bcfa,eq L00BD        ;if != goto L00BD;                         ;3
  209. X0050:
  210.         bctr,un L0072        ;goto L0072;                               ;2
  211. ;
  212. L0052:
  213.         bsta,un L0A11        ;gosub L0A11;                              ;3
  214.         eorz    r0           ;r0 = 0;                                   ;1
  215.         stra,r0 $1AF7        ;*($1AF7) = r0; // user RAM                ;3
  216.         stra,r0 $1AF6        ;*($1AF6) = r0; // user RAM                ;3
  217.         lodi,r0 $01          ;r0 = $01;                                 ;2
  218.         strr,r0 *$0073       ;*(*($0073)) = r0; // ROM                  ;2
  219. L0060:
  220.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  221.         bcfr,eq L0060        ;if != goto L0060;                         ;2
  222.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  223.         stra,r0 $1AFA        ;*($1AFA) = r0; // user RAM                ;3
  224.         stra,r0 $1AFB        ;*($1AFB) = r0; // user RAM                ;3
  225.         bsta,un L00E7        ;gosub L00E7;                              ;3
  226.         bsta,un L0159        ;gosub L0159;                              ;3
  227. L0072:
  228.         loda,r0 $18FA        ;r0 = *($18FA); // user RAM                ;3
  229.         bctr,eq L0093        ;if == goto L0093;                         ;2
  230.         bctr,lt L007C        ;if < goto L007C;                          ;2
  231.         bcta,un L0199        ;goto L0199;                               ;3
  232. ;
  233. L007C:
  234.         loda,r0 CRTCVPR      ;r0 = CRTCVPR; // hardware registers       ;3
  235.         comi,r0 $06          ;compare r0 against $06;                   ;2
  236.         bctr,lt L0096        ;if < goto L0096;                          ;2
  237.         addi,r0 $FD          ;r0 += $FD;                                ;2
  238.         strr,r0 *$007D       ;*(*($007D)) = r0; // ROM                  ;2
  239.         lodi,r1 $06          ;r1 = $06;                                 ;2
  240.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  241. L008B:
  242.         stra,r0 $18F1,r1     ;*($18F1 + r1) = r0;                       ;3
  243.         stra,r0 $18E3,r1     ;*($18E3 + r1) = r0;                       ;3
  244.         bdrr,r1 L008B        ;if (--r1 != 0) goto L008B;                ;2
  245. L0093:
  246.         bcta,un L0999        ;goto L0999;                               ;3
  247. ;
  248. L0096:
  249.         lodi,r0 $01          ;r0 = $01;                                 ;2
  250.         strr,r0 *$0073       ;*(*($0073)) = r0; // ROM                  ;2
  251.         bsta,un L0A43        ;gosub L0A43;                              ;3
  252.         bsta,un L00E7        ;gosub L00E7;                              ;3
  253.         eorz    r0           ;r0 = 0;                                   ;1
  254.         strz    r3           ;r3 = r0;                                  ;1
  255.         stra,r0 $18E0        ;*($18E0) = r0; // user RAM                ;3
  256.         bsta,un L0186        ;gosub L0186;                              ;3
  257.         bctr,un L0093        ;goto L0093;                               ;2
  258. ;
  259. L00AA:
  260.         loda,r0 $18FB        ;r0 = *($18FB); // user RAM                ;3
  261.         addi,r0 $01          ;r0++;                                     ;2
  262.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  263. L00B1:
  264.         strr,r0 *$00AB       ;*(*($00AB)) = r0; // ROM                  ;2
  265.         addi,r0 $01          ;r0++;                                     ;2
  266.         iori,r0 $90          ;r0 |= %10010000;                          ;2
  267.         stra,r0 $1815        ;*($1815) = r0; // upper screen            ;3
  268.         eorz    r0           ;r0 = 0;                                   ;1
  269.         bctr,un L00CC        ;goto L00CC;                               ;2
  270. ;
  271. L00BD:
  272.         loda,r0 $1AF4        ;r0 = *($1AF4); // user RAM                ;3
  273.         addi,r0 $01          ;r0++;                                     ;2
  274.         lodr,r1 *$00AB       ;r1 = *(*($00AB)); // ROM                  ;2
  275.         bctr,eq L00CA        ;if == goto L00CA;                         ;2
  276.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  277.         bctr,un L00CC        ;goto L00CC;                               ;2
  278. ;
  279. L00CA:
  280.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  281. L00CC:
  282.         strr,r0 *$00BE       ;*(*($00BE)) = r0; // ROM                  ;2
  283.         addi,r0 $01          ;r0++;                                     ;2
  284.         iori,r0 $50          ;r0 |= %01010000;                          ;2
  285.         stra,r0 $181F        ;*($181F) = r0; // upper screen            ;3
  286.         bsta,un L0A43        ;gosub L0A43;                              ;3
  287.         eorz    r0           ;r0 = 0;                                   ;1
  288.         stra,r0 $18FA        ;*($18FA) = r0; // user RAM                ;3
  289.         bsta,un L0FE7        ;gosub L0FE7;                              ;3
  290.         lodi,r0 $EE          ;r0 = $EE;                                 ;2
  291.         stra,r0 CRTCVPR      ;CRTCVPR = r0; // hardware registers       ;3
  292.         bcta,un L0060        ;goto L0060;                               ;3
  293. ;
  294. L00E7:
  295.         loda,r1 $18F9        ;r1 = *($18F9); // user RAM                ;3
  296.         lodr,r0 *$00BE       ;r0 = *(*($00BE)); // ROM                  ;2
  297.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  298.         stra,r0 $18D0        ;*($18D0) = r0; // user RAM                ;3
  299.         lodi,r2 $00          ;r2 = $00;                                 ;2
  300. L00F3:
  301.         loda,r0 $0050,r1+    ;r0 = *($0050 + ++r1);                     ;3
  302.         strz    r3           ;r3 = r0;                                  ;1
  303.         bctr,lt L0117        ;if < goto L0117;                          ;2
  304.         addi,r3 $21          ;r3 += $21;                                ;2
  305.         comi,r3 $CE          ;compare r3 against $CE;                   ;2
  306.         bctr,gt L00F3        ;if > goto L00F3;                          ;2
  307.         loda,r0 $1800,r3     ;r0 = *($1800 + r3);                       ;3
  308.         bcfr,eq L00F3        ;if != goto L00F3;                         ;2
  309.         lodi,r0 $BC          ;r0 = $BC;                                 ;2
  310.         stra,r0 $1800,r3     ;*($1800 + r3) = r0;                       ;3
  311.         lodz    r3           ;r0 = r3;                                  ;1
  312.         stra,r0 $1AE1,r2     ;*($1AE1 + r2) = r0;                       ;3
  313.         loda,r0 $0FDF,r2     ;r0 = *($0FDF + r2);                       ;3
  314.         eori,r0 $FF          ;r0 ^= %11111111;                          ;2
  315.         anda,r0 $18D8        ;r0 &= *($18D8); // user RAM               ;3
  316.         bctr,un L013A        ;goto L013A;                               ;2
  317. ;
  318. L0117:
  319.         andi,r3 $7F          ;r3 &= %01111111;                          ;2
  320.         addi,r3 $10          ;r3 += $10;                                ;2
  321.         lodz    r3           ;r0 = r3;                                  ;1
  322.         comi,r0 $40          ;compare r0 against $40;                   ;2
  323.         bctr,gt L0126        ;if > goto L0126;                          ;2
  324.         andi,r0 $0F          ;r0 &= %00001111;                          ;2
  325.         comi,r0 $04          ;compare r0 against $04;                   ;2
  326.         bctr,lt L00F3        ;if < goto L00F3;                          ;2
  327. L0126:
  328.         loda,r0 $1A00,r3     ;r0 = *($1A00 + r3);                       ;3
  329.         bcfr,eq L00F3        ;if != goto L00F3;                         ;2
  330.         lodi,r0 $BC          ;r0 = $BC;                                 ;2
  331.         stra,r0 $1A00,r3     ;*($1A00 + r3) = r0;                       ;3
  332.         lodz    r3           ;r0 = r3;                                  ;1
  333.         stra,r0 $1AE1,r2     ;*($1AE1 + r2) = r0;                       ;3
  334.         loda,r0 $0FDF,r2     ;r0 = *($0FDF + r2);                       ;3
  335.         iora,r0 $18D8        ;r0 |= *($18D8); // user RAM               ;3
  336. L013A:
  337.         strr,r0 *$0138       ;*(*($0138)) = r0; // ROM                  ;2
  338.         addi,r2 $01          ;r2++;                                     ;2
  339.         comi,r2 $08          ;compare r2 against $08;                   ;2
  340.         bcfa,eq L00F3        ;if != goto L00F3;                         ;3
  341.         loda,r0 $18D0        ;r0 = *($18D0); // user RAM                ;3
  342.         bctr,eq L016F        ;if == goto L016F;                         ;2
  343.         addi,r0 $FF          ;r0--;                                     ;2
  344.         stra,r0 $18D0        ;*($18D0) = r0; // user RAM                ;3
  345.         lodr,r0 *$0152       ;r0 = *(*($0152)); // ROM                  ;2
  346.         addi,r0 $14          ;r0 += $14;                                ;2
  347.         stra,r0 $18F9        ;*($18F9) = r0; // user RAM                ;3
  348.         lodi,r2 $04          ;r2 = $04;                                 ;2
  349.         bcta,un L00F3        ;goto L00F3;                               ;3
  350. ;
  351. L0159:
  352.         lodi,r0 $DC          ;r0 = $DC;                                 ;2
  353.         lodi,r1 $0C          ;r1 = $0C;                                 ;2
  354.         stra,r1 VOLUME       ;VOLUME = r1; // hardware registers        ;3
  355. L0160:
  356.         bdrr,r1 L0160        ;if (--r1 != 0) goto L0160;                ;2
  357.         strz    r3           ;r3 = r0;                                  ;1
  358.         rrr,r3               ;r3 >>= 1;                                 ;1
  359.         andi,r3 $7F          ;r3 &= %01111111;                          ;2
  360.         stra,r3 PITCH        ;PITCH = r3; // hardware registers         ;3
  361.         bdrr,r0 L0160        ;if (--r0 != 0) goto L0160;                ;2
  362.         stra,r0 VOLUME       ;VOLUME = r0; // hardware registers        ;3
  363.         retc,un              ;return;                                   ;1
  364. ;
  365. L016F:
  366.         lodi,r1 $08          ;r1 = $08;                                 ;2
  367. L0171:
  368.         loda,r0 $0179,r1     ;r0 = *($0179 + r1);                       ;3
  369.         stra,r0 $18EF,r1     ;*($18EF + r1) = r0;                       ;3
  370.         bdrr,r1 L0171        ;if (--r1 != 0) goto L0171;                ;2
  371. X0179:
  372.         retc,un              ;return;                                   ;1
  373. ;
  374.         db      $FF, $FF, $78, $50
  375.         db      $80, $35, $FF, $FF
  376. ;
  377. L0182:
  378.         lodi,r0 $70          ;r0 = $70;                                 ;2
  379.         lodi,r3 $17          ;r3 = $17;                                 ;2
  380. L0186:
  381.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  382.         stra,r3 $18E2        ;*($18E2) = r3; // user RAM                ;3
  383.         retc,un              ;return;                                   ;1
  384. ;
  385. L018D:
  386.         loda,r0 P1LEFTKEYS   ;r0 = P1LEFTKEYS; // hardware registers    ;3
  387.         iora,r0 P1MIDDLEKEYS ;r0 |= P1MIDDLEKEYS; // hardware registers ;3
  388.         iora,r0 P1RIGHTKEYS  ;r0 |= P1RIGHTKEYS; // hardware registers  ;3
  389.         andi,r0 $0F          ;r0 &= %00001111;                          ;2
  390.         retc,un              ;return;                                   ;1
  391. ;
  392. L0199:
  393.         loda,r0 CRTCVPR      ;r0 = CRTCVPR; // hardware registers       ;3
  394.         comi,r0 $EE          ;compare r0 against $EE;                   ;2
  395.         bctr,gt L01AB        ;if > goto L01AB;                          ;2
  396.         addi,r0 $03          ;r0 += $03;                                ;2
  397.         strr,r0 *$019A       ;*(*($019A)) = r0; // ROM                  ;2
  398.         eorz    r0           ;r0 = 0;                                   ;1
  399.         stra,r0 $18E0        ;*($18E0) = r0; // user RAM                ;3
  400. L01A8:
  401.         bcta,un L0999        ;goto L0999;                               ;3
  402. ;
  403. L01AB:
  404.         bstr,un L018D        ;gosub L018D;                              ;2
  405.         bctr,eq L01B2        ;if == goto L01B2;                         ;2
  406.         stra,r0 $18D5        ;*($18D5) = r0; // user RAM                ;3
  407. L01B2:
  408.         lodr,r0 *$01B0       ;r0 = *(*($01B0)); // ROM                  ;2
  409.         bctr,eq L01A8        ;if == goto L01A8;                         ;2
  410.         lodr,r0 *$01A6       ;r0 = *(*($01A6)); // ROM                  ;2
  411.         bctr,eq L01C0        ;if == goto L01C0;                         ;2
  412.         addi,r0 $FF          ;r0--;                                     ;2
  413.         strr,r0 *$01A6       ;*(*($01A6)) = r0; // ROM                  ;2
  414.         bctr,un L01D0        ;goto L01D0;                               ;2
  415. ;
  416. L01C0:
  417.         lodi,r1 $02          ;r1 = $02;                                 ;2
  418. L01C2:
  419.         loda,r0 $18E0,r1     ;r0 = *($18E0 + r1);                       ;3
  420.         stra,r0 $18FC,r1     ;*($18FC + r1) = r0;                       ;3
  421.         bdrr,r1 L01C2        ;if (--r1 != 0) goto L01C2;                ;2
  422.         stra,r1 $18E2        ;*($18E2) = r1; // user RAM                ;3
  423.         stra,r1 $18E1        ;*($18E1) = r1; // user RAM                ;3
  424. L01D0:
  425.         loda,r0 $1ADE        ;r0 = *($1ADE); // user RAM                ;3
  426.         bcta,eq L02A2        ;if == goto L02A2;                         ;3
  427.         addi,r0 $FF          ;r0--;                                     ;2
  428.         strr,r0 *$01D1       ;*(*($01D1)) = r0; // ROM                  ;2
  429.         bcta,eq L0247        ;if == goto L0247;                         ;3
  430.         rrr,r0               ;r0 >>= 1;                                 ;1
  431.         rrr,r0               ;r0 >>= 1;                                 ;1
  432.         rrr,r0               ;r0 >>= 1;                                 ;1
  433.         rrr,r0               ;r0 >>= 1;                                 ;1
  434.         andi,r0 $0F          ;r0 &= %00001111;                          ;2
  435.         strz    r3           ;r3 = r0;                                  ;1
  436.         loda,r0 $021F,r3     ;r0 = *($021F + r3);                       ;3
  437.         stra,r0 PITCH        ;PITCH = r0; // hardware registers         ;3
  438.         loda,r0 $020F,r3     ;r0 = *($020F + r3);                       ;3
  439.         stra,r0 VOLUME       ;VOLUME = r0; // hardware registers        ;3
  440.         lodi,r0 $04          ;r0 = $04;                                 ;2
  441.         stra,r0 $18E0        ;*($18E0) = r0; // user RAM                ;3
  442.         loda,r0 $01FE,r3     ;r0 = *($01FE + r3);                       ;3
  443.         bsta,un L0FBC        ;gosub L0FBC;                              ;3
  444.         bcta,un L0999        ;goto L0999;                               ;3
  445. ;
  446. X01FE:
  447.         db      $08, $08, $08, $08
  448.         db      $08, $08, $10, $10
  449.         db      $10, $10, $10, $18
  450.         db      $18, $18, $18, $18
  451.         db      $18
  452. X020F:
  453.         db      $00, $12, $13, $14
  454.         db      $15, $16, $17, $17
  455.         db      $17, $17, $17, $17
  456.         db      $17, $17, $17, $17
  457. X021F:
  458.         db      $00, $01, $02, $03
  459.         db      $02, $03, $04, $05
  460.         db      $02, $03, $04, $01
  461.         db      $01, $02, $02, $01
  462.         db      $01
  463. ;
  464. L0230:
  465.         lodi,r0 $05          ;r0 = $05;                                 ;2
  466. L0232:
  467.         stra,r0 $1AFE        ;*($1AFE) = r0; // user RAM                ;3
  468.         bsta,un L0975        ;gosub L0975;                              ;3
  469.         lodr,r0 *$0233       ;r0 = *(*($0233)); // ROM                  ;2
  470.         bdrr,r0 L0232        ;if (--r0 != 0) goto L0232;                ;2
  471.         ppsu    $40          ;PSU |= %01000000;                         ;2
  472.         bstr,un *$0241          ;INFO: indirect jump
  473.                              ;gosub *($0241);
  474.                                                                         ;2
  475.         bsta,un L0159        ;gosub L0159;                              ;3
  476.         cpsu    $40          ;PSU &= %10111111;                         ;2
  477.         bctr,un L0257        ;goto L0257;                               ;2
  478. ;
  479. L0247:
  480.         loda,r0 $1AF6        ;r0 = *($1AF6); // user RAM                ;3
  481.         addi,r0 $01          ;r0++;                                     ;2
  482.         strr,r0 *$0248       ;*(*($0248)) = r0; // ROM                  ;2
  483.         strz    r1           ;r1 = r0;                                  ;1
  484.         eorz    r0           ;r0 = 0;                                   ;1
  485.         stra,r0 $1805,r1     ;*($1805 + r1) = r0;                       ;3
  486.         comi,r1 $04          ;compare r1 against $04;                   ;2
  487.         bctr,eq L025E        ;if == goto L025E;                         ;2
  488. L0257:
  489.         lodi,r0 $80          ;r0 = $80;                                 ;2
  490.         stra,r0 $18FA        ;*($18FA) = r0; // user RAM                ;3
  491.         bctr,un L027C        ;goto L027C;                               ;2
  492. ;
  493. L025E:
  494.         eorz    r0           ;r0 = 0;                                   ;1
  495.         strr,r0 *$025A       ;*(*($025A)) = r0; // ROM                  ;2
  496.         bsta,un L0FE7        ;gosub L0FE7;                              ;3
  497.         lodi,r1 $00          ;r1 = $00;                                 ;2
  498. L0266:
  499.         loda,r0 $180B,r1     ;r0 = *($180B + r1);                       ;3
  500.         andi,r0 $3F          ;r0 &= %00111111;                          ;2
  501.         strz    r3           ;r3 = r0;                                  ;1
  502.         loda,r0 $1800,r1     ;r0 = *($1800 + r1);                       ;3
  503.         andi,r0 $3F          ;r0 &= %00111111;                          ;2
  504.         comz    r3           ;compare r0 against r3;                    ;1
  505.         bctr,gt L027F        ;if > goto L027F;                          ;2
  506.         bctr,lt L027C        ;if < goto L027C;                          ;2
  507.         addi,r1 $01          ;r1++;                                     ;2
  508.         comi,r1 $04          ;compare r1 against $04;                   ;2
  509.         bcfr,eq L0266        ;if != goto L0266;                         ;2
  510. L027C:
  511.         bcta,un L0999        ;goto L0999;                               ;3
  512. ;
  513. L027F:
  514.         lodi,r1 $04          ;r1 = $04;                                 ;2
  515. L0281:
  516.         loda,r0 $17FF,r1     ;r0 = *($17FF + r1);                       ;3
  517.         andi,r0 $3F          ;r0 &= %00111111;                          ;2
  518.         lodi,r2 $0F          ;r2 = $0F;                                 ;2
  519.         stra,r2 VOLUME       ;VOLUME = r2; // hardware registers        ;3
  520.         lodi,r3 $7F          ;r3 = $7F;                                 ;2
  521. L028D:
  522.         bdrr,r2 L028D        ;if (--r2 != 0) goto L028D;                ;2
  523.         stra,r3 $18D0        ;*($18D0) = r3; // user RAM                ;3
  524.         andi,r3 $AA          ;r3 &= %10101010;                          ;2
  525.         stra,r3 PITCH        ;PITCH = r3; // hardware registers         ;3
  526.         lodr,r3 *$0290       ;r3 = *(*($0290)); // ROM                  ;2
  527.         bdrr,r3 L028D        ;if (--r3 != 0) goto L028D;                ;2
  528.         stra,r0 $180A,r1     ;*($180A + r1) = r0;                       ;3
  529.         bdrr,r1 L0281        ;if (--r1 != 0) goto L0281;                ;2
  530.         bctr,un L027C        ;goto L027C;                               ;2
  531. ;
  532. L02A2:
  533.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  534.         andi,r1 $03          ;r1 &= %00000011;                          ;2
  535.         comi,r1 $01          ;compare r1 against $01;                   ;2
  536.         bctr,eq L02C5        ;if == goto L02C5;                         ;2
  537.         loda,r0 $1AFB        ;r0 = *($1AFB); // user RAM                ;3
  538.         andi,r0 $02          ;r0 &= %00000010;                          ;2
  539.         bcfr,eq L02C5        ;if != goto L02C5;                         ;2
  540. L02B2:
  541.         lodi,r1 $FF          ;r1 = $FF;                                 ;2
  542.         stra,r1 $1ADE        ;*($1ADE) = r1; // user RAM                ;3
  543.         stra,r1 $18E5        ;*($18E5) = r1; // user RAM                ;3
  544.         lodi,r1 $04          ;r1 = $04;                                 ;2
  545.         lodi,r0 $01          ;r0 = $01;                                 ;2
  546. L02BE:
  547.         stra,r0 $1AD9,r1     ;*($1AD9 + r1) = r0;                       ;3
  548.         bdrr,r1 L02BE        ;if (--r1 != 0) goto L02BE;                ;2
  549.         bctr,un L02DF        ;goto L02DF;                               ;2
  550. ;
  551. L02C5:
  552.         loda,r0 $1AFA        ;r0 = *($1AFA); // user RAM                ;3
  553.         andi,r0 $04          ;r0 &= %00000100;                          ;2
  554.         bctr,eq L02B2        ;if == goto L02B2;                         ;2
  555.         lodr,r0 *$02AC       ;r0 = *(*($02AC)); // ROM                  ;2
  556.         andi,r0 $20          ;r0 &= %00100000;                          ;2
  557.         bctr,eq L02B2        ;if == goto L02B2;                         ;2
  558.         loda,r0 $1AEF        ;r0 = *($1AEF); // user RAM                ;3
  559.         comi,r0 $09          ;compare r0 against $09;                   ;2
  560.         bcfr,eq L02DF        ;if != goto L02DF;                         ;2
  561.         lodr,r0 *$02AC       ;r0 = *(*($02AC)); // ROM                  ;2
  562.         andi,r0 $08          ;r0 &= %00001000;                          ;2
  563.         bctr,eq L02B2        ;if == goto L02B2;                         ;2
  564. L02DF:
  565.         loda,r0 $18EC        ;r0 = *($18EC); // user RAM                ;3
  566.         bcta,eq L0335        ;if == goto L0335;                         ;3
  567.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  568.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  569.         comi,r0 $03          ;compare r0 against $03;                   ;2
  570.         bcfr,eq L030E        ;if != goto L030E;                         ;2
  571.         lodr,r0 *$02E0       ;r0 = *(*($02E0)); // ROM                  ;2
  572.         addi,r0 $FF          ;r0--;                                     ;2
  573.         strr,r0 *$02E0       ;*(*($02E0)) = r0; // ROM                  ;2
  574.         bctr,eq L030B        ;if == goto L030B;                         ;2
  575.         strz    r3           ;r3 = r0;                                  ;1
  576.         loda,r0 $0310,r3     ;r0 = *($0310 + r3);                       ;3
  577.         bsta,un L0FB4        ;gosub L0FB4;                              ;3
  578.         loda,r0 $0312,r3     ;r0 = *($0312 + r3);                       ;3
  579.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  580.         loda,r0 $0314,r3     ;r0 = *($0314 + r3);                       ;3
  581.         stra,r0 $18E2        ;*($18E2) = r0; // user RAM                ;3
  582.         bctr,un L030E        ;goto L030E;                               ;2
  583. ;
  584. L030B:
  585.         bsta,un L040C        ;gosub L040C;                              ;3
  586. L030E:
  587.         bcta,un L03D0        ;goto L03D0;                               ;3
  588. ;
  589.         db      $10
  590. X0312:
  591.         db      $08, $74
  592. X0314:
  593.         db      $75, $13, $0D
  594. ;
  595. L0317:
  596.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  597.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  598.         comi,r0 $01          ;compare r0 against $01;                   ;2
  599.         bcfr,eq L030E        ;if != goto L030E;                         ;2
  600.         loda,r0 $1AFB        ;r0 = *($1AFB); // user RAM                ;3
  601.         andi,r0 $04          ;r0 &= %00000100;                          ;2
  602.         bcfr,eq L030E        ;if != goto L030E;                         ;2
  603.         loda,r1 $1AD9        ;r1 = *($1AD9); // user RAM                ;3
  604.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  605.         stra,r0 $1AE1,r1     ;*($1AE1 + r1) = r0;                       ;3
  606.         stra,r0 SPRITE3X     ;SPRITE3X = r0; // hardware registers      ;3
  607.         bcta,un L036B        ;goto L036B;                               ;3
  608. ;
  609. L0335:
  610.         loda,r0 $1ADA        ;r0 = *($1ADA); // user RAM                ;3
  611.         bctr,eq L030E        ;if == goto L030E;                         ;2
  612.         loda,r0 $18E4        ;r0 = *($18E4); // user RAM                ;3
  613.         loda,r1 $18E5        ;r1 = *($18E5); // user RAM                ;3
  614.         bsta,un L05D0        ;gosub L05D0;                              ;3
  615.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  616.         bctr,eq L0354        ;if == goto L0354;                         ;2
  617.         comi,r1 $FF          ;compare r1 against $FF;                   ;2
  618.         bctr,eq L0359        ;if == goto L0359;                         ;2
  619.         loda,r0 $1A00,r1     ;r0 = *($1A00 + r1);                       ;3
  620.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  621.         bctr,eq L0362        ;if == goto L0362;                         ;2
  622. L0352:
  623.         comi,r0 $3F          ;compare r0 against $3F;                   ;2
  624. L0354:
  625.         bctr,eq L038C        ;if == goto L038C;                         ;2
  626.         bcta,un L0317        ;goto L0317;                               ;3
  627. ;
  628. L0359:
  629.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  630.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  631.         bctr,eq L0394        ;if == goto L0394;                         ;2
  632.         bctr,un L0352        ;goto L0352;                               ;2
  633. ;
  634. L0362:
  635.         eorz    r0           ;r0 = 0;                                   ;1
  636.         stra,r0 $1A00,r1     ;*($1A00 + r1) = r0;                       ;3
  637.         lodz    r1           ;r0 = r1;                                  ;1
  638.         bstr,un L039F        ;gosub L039F;                              ;2
  639.         bcfr,eq L0370        ;if != goto L0370;                         ;2
  640. L036B:
  641.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  642.         stra,r0 $1AE0,r1     ;*($1AE0 + r1) = r0;                       ;3
  643. L0370:
  644.         loda,r0 $18D7        ;r0 = *($18D7); // user RAM                ;3
  645.         addi,r0 $01          ;r0++;                                     ;2
  646.         loda,r1 $1AF4        ;r1 = *($1AF4); // user RAM                ;3
  647.         andi,r1 $03          ;r1 &= %00000011;                          ;2
  648.         coma,r0 $03CC,r1     ;compare r0 against *($03CC + r1);         ;3
  649.         strr,r0 *$0371       ;*(*($0371)) = r0; // ROM                  ;2
  650.         bcfr,eq L0385        ;if != goto L0385;                         ;2
  651.         lodi,r0 $0C          ;r0 = $0C;                                 ;2
  652.         bctr,un L0387        ;goto L0387;                               ;2
  653. ;
  654. L0385:
  655.         lodi,r0 $02          ;r0 = $02;                                 ;2
  656. L0387:
  657.         adda,r0 $1AF7        ;r0 += *($1AF7); // user RAM               ;3
  658.         strr,r0 *$0388       ;*(*($0388)) = r0; // ROM                  ;2
  659. L038C:
  660.         lodi,r0 $03          ;r0 = $03;                                 ;2
  661.         stra,r0 $18EC        ;*($18EC) = r0; // user RAM                ;3
  662.         bcta,un L03D0        ;goto L03D0;                               ;3
  663. ;
  664. L0394:
  665.         eorz    r0           ;r0 = 0;                                   ;1
  666.         stra,r0 $1800,r2     ;*($1800 + r2) = r0;                       ;3
  667.         lodz    r2           ;r0 = r2;                                  ;1
  668.         bstr,un L03B5        ;gosub L03B5;                              ;2
  669.         bcfr,eq L0370        ;if != goto L0370;                         ;2
  670.         bctr,un L036B        ;goto L036B;                               ;2
  671. ;
  672. L039F:
  673.         lodi,r1 $08          ;r1 = $08;                                 ;2
  674. L03A1:
  675.         coma,r0 $1AE0,r1     ;compare r0 against *($1AE0 + r1);         ;3
  676.         bctr,eq L03AA        ;if == goto L03AA;                         ;2
  677. L03A6:
  678.         bdrr,r1 L03A1        ;if (--r1 != 0) goto L03A1;                ;2
  679.         bctr,un L03BE        ;goto L03BE;                               ;2
  680. ;
  681. L03AA:
  682.         strz    r3           ;r3 = r0;                                  ;1
  683.         loda,r0 $0FDE,r1     ;r0 = *($0FDE + r1);                       ;3
  684.         anda,r0 $18D8        ;r0 &= *($18D8); // user RAM               ;3
  685.         bctr,eq L03A6        ;if == goto L03A6;                         ;2
  686.         bctr,un L03CA        ;goto L03CA;                               ;2
  687. ;
  688. L03B5:
  689.         lodi,r1 $08          ;r1 = $08;                                 ;2
  690. L03B7:
  691.         coma,r0 $1AE0,r1     ;compare r0 against *($1AE0 + r1);         ;3
  692.         bctr,eq L03C1        ;if == goto L03C1;                         ;2
  693. L03BC:
  694.         bdrr,r1 L03B7        ;if (--r1 != 0) goto L03B7;                ;2
  695. L03BE:
  696.         iori,r0 $01          ;r0 |= %00000001;                          ;2
  697.         retc,un              ;return;                                   ;1
  698. ;
  699. L03C1:
  700.         strz    r3           ;r3 = r0;                                  ;1
  701.         loda,r0 $0FDE,r1     ;r0 = *($0FDE + r1);                       ;3
  702.         anda,r0 $18D8        ;r0 &= *($18D8); // user RAM               ;3
  703.         bcfr,eq L03BC        ;if != goto L03BC;                         ;2
  704. L03CA:
  705.         eorz    r0           ;r0 = 0;                                   ;1
  706.         retc,un              ;return;                                   ;1
  707. ;
  708. X03CC:
  709.         db      $08, $0C, $10, $14
  710. ;
  711. L03D0:
  712.         loda,r0 $18EC        ;r0 = *($18EC); // user RAM                ;3
  713.         bcfa,eq L043B        ;if != goto L043B;                         ;3
  714.         loda,r0 $1ADA        ;r0 = *($1ADA); // user RAM                ;3
  715.         bcta,eq L041A        ;if == goto L041A;                         ;3
  716.         addi,r0 $FF          ;r0--;                                     ;2
  717.         strr,r0 *$03D7       ;*(*($03D7)) = r0; // ROM                  ;2
  718.         bctr,eq L0416        ;if == goto L0416;                         ;2
  719.         loda,r1 $1AE9        ;r1 = *($1AE9); // user RAM                ;3
  720.         loda,r0 $18E4        ;r0 = *($18E4); // user RAM                ;3
  721.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  722.         stra,r0 $18E4        ;*($18E4) = r0; // user RAM                ;3
  723.         loda,r0 $18E5        ;r0 = *($18E5); // user RAM                ;3
  724.         adda,r0 $04AE,r1     ;r0 += *($04AE + r1);                      ;3
  725.         stra,r0 $18E5        ;*($18E5) = r0; // user RAM                ;3
  726.         comi,r0 $A6          ;compare r0 against $A6;                   ;2
  727.         bctr,gt L0416        ;if > goto L0416;                          ;2
  728.         lodi,r0 $88          ;r0 = $88;                                 ;2
  729.         bsta,un L0FB4        ;gosub L0FB4;                              ;3
  730.         lodi,r0 $04          ;r0 = $04;                                 ;2
  731.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  732.         lodi,r0 $17          ;r0 = $17;                                 ;2
  733.         stra,r0 $18E2        ;*($18E2) = r0; // user RAM                ;3
  734.         bctr,un L043B        ;goto L043B;                               ;2
  735. ;
  736. L040C:
  737.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  738.         stra,r0 $18E5        ;*($18E5) = r0; // user RAM                ;3
  739.         eorz    r0           ;r0 = 0;                                   ;1
  740.         stra,r0 $1ADA        ;*($1ADA) = r0; // user RAM                ;3
  741.         retc,un              ;return;                                   ;1
  742. ;
  743. L0416:
  744.         bstr,un L040C        ;gosub L040C;                              ;2
  745.         bctr,un L043B        ;goto L043B;                               ;2
  746. ;
  747. L041A:
  748.         bsta,un L018D        ;gosub L018D;                              ;3
  749.         bctr,eq L043B        ;if == goto L043B;                         ;2
  750.         loda,r0 $1AED        ;r0 = *($1AED); // user RAM                ;3
  751.         comi,r0 $08          ;compare r0 against $08;                   ;2
  752.         bcfr,lt L043B        ;if >= goto L043B;                         ;2
  753.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  754.         strr,r0 *$0413       ;*(*($0413)) = r0; // ROM                  ;2
  755.         loda,r1 $1AED        ;r1 = *($1AED); // user RAM                ;3
  756.         stra,r1 $1AE9        ;*($1AE9) = r1; // user RAM                ;3
  757.         loda,r0 SPRITE2Y     ;r0 = SPRITE2Y; // hardware registers      ;3
  758.         stra,r0 $18E4        ;*($18E4) = r0; // user RAM                ;3
  759.         loda,r0 SPRITE2X     ;r0 = SPRITE2X; // hardware registers      ;3
  760.         strr,r0 *$040F       ;*(*($040F)) = r0; // ROM                  ;2
  761. L043B:
  762.         loda,r0 $18FB        ;r0 = *($18FB); // user RAM                ;3
  763.         bcta,eq L0672        ;if == goto L0672;                         ;3
  764.         loda,r0 $1ADB        ;r0 = *($1ADB); // user RAM                ;3
  765.         bcta,eq L0485        ;if == goto L0485;                         ;3
  766.         addi,r0 $FF          ;r0--;                                     ;2
  767.         strr,r0 *$0442       ;*(*($0442)) = r0; // ROM                  ;2
  768.         bcta,eq L047E        ;if == goto L047E;                         ;3
  769.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  770.         andi,r0 $01          ;r0 &= %00000001;                          ;2
  771.         comi,r0 $01          ;compare r0 against $01;                   ;2
  772.         bcfr,eq L047C        ;if != goto L047C;                         ;2
  773.         loda,r1 $1AEA        ;r1 = *($1AEA); // user RAM                ;3
  774.         loda,r0 $18E6        ;r0 = *($18E6); // user RAM                ;3
  775.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  776.         strr,r0 *$045B       ;*(*($045B)) = r0; // ROM                  ;2
  777.         loda,r0 $18E7        ;r0 = *($18E7); // user RAM                ;3
  778.         adda,r0 $04AE,r1     ;r0 += *($04AE + r1);                      ;3
  779.         strr,r0 *$0463       ;*(*($0463)) = r0; // ROM                  ;2
  780.         strz    r1           ;r1 = r0;                                  ;1
  781.         lodr,r0 *$045B       ;r0 = *(*($045B)); // ROM                  ;2
  782.         bsta,un L05A0        ;gosub L05A0;                              ;3
  783.         bctr,eq L047E        ;if == goto L047E;                         ;2
  784.         lodi,r0 $01          ;r0 = $01;                                 ;2
  785.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  786.         lodi,r0 $0D          ;r0 = $0D;                                 ;2
  787.         stra,r0 $18E2        ;*($18E2) = r0; // user RAM                ;3
  788. L047C:
  789.         bctr,un L04AC        ;goto L04AC;                               ;2
  790. ;
  791. L047E:
  792.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  793.         strr,r0 *$0463       ;*(*($0463)) = r0; // ROM                  ;2
  794.         eorz    r0           ;r0 = 0;                                   ;1
  795.         bctr,un L04A9        ;goto L04A9;                               ;2
  796. ;
  797. L0485:
  798.         loda,r0 $18D6        ;r0 = *($18D6); // user RAM                ;3
  799.         loda,r1 $1AF4        ;r1 = *($1AF4); // user RAM                ;3
  800.         tmi,r1  $04          ;test bits %00000100 of r1;                ;2
  801.         bcfr,eq L0493        ;if != goto L0493;                         ;2
  802.         andi,r0 $70          ;r0 &= %01110000;                          ;2
  803.         bctr,un L0495        ;goto L0495;                               ;2
  804. ;
  805. L0493:
  806.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  807. L0495:
  808.         comi,r0 $30          ;compare r0 against $30;                   ;2
  809.         bcfr,eq L04B9        ;if != goto L04B9;                         ;2
  810.         bsta,un L05FC        ;gosub L05FC;                              ;3
  811.         bctr,eq L04B9        ;if == goto L04B9;                         ;2
  812.         stra,r1 $18E6        ;*($18E6) = r1; // user RAM                ;3
  813.         stra,r2 $18E7        ;*($18E7) = r2; // user RAM                ;3
  814.         stra,r0 $1AEA        ;*($1AEA) = r0; // user RAM                ;3
  815.         lodi,r0 $7F          ;r0 = $7F;                                 ;2
  816. L04A9:
  817.         stra,r0 $1ADB        ;*($1ADB) = r0; // user RAM                ;3
  818. L04AC:
  819.         bctr,un L04B9        ;goto L04B9;                               ;2
  820. ;
  821. X04AE:
  822.         db      $00, $01
  823. X04B0:
  824.         db      $01, $01, $00, $FF
  825.         db      $FF, $FF, $00, $01
  826.         db      $01
  827. ;
  828. L04B9:
  829.         loda,r0 $18FB        ;r0 = *($18FB); // user RAM                ;3
  830.         comi,r0 $02          ;compare r0 against $02;                   ;2
  831.         bcta,lt L0672        ;if < goto L0672;                          ;3
  832.         loda,r0 $1ADC        ;r0 = *($1ADC); // user RAM                ;3
  833.         bcta,eq L0505        ;if == goto L0505;                         ;3
  834.         addi,r0 $FF          ;r0--;                                     ;2
  835.         strr,r0 *$04C2       ;*(*($04C2)) = r0; // ROM                  ;2
  836.         bcta,eq L04FD        ;if == goto L04FD;                         ;3
  837.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  838.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  839.         comi,r0 $01          ;compare r0 against $01;                   ;2
  840.         bcfr,eq L04FB        ;if != goto L04FB;                         ;2
  841.         loda,r1 $1AEB        ;r1 = *($1AEB); // user RAM                ;3
  842.         lodr,r0 *$04EA       ;r0 = *(*($04EA)); // ROM                  ;2
  843.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  844.         strr,r0 *$04EA       ;*(*($04EA)) = r0; // ROM                  ;2
  845.         lodr,r0 *$0500       ;r0 = *(*($0500)); // ROM                  ;2
  846.         adda,r0 $04AE,r1     ;r0 += *($04AE + r1);                      ;3
  847.         strr,r0 *$0500       ;*(*($0500)) = r0; // ROM                  ;2
  848.         strz    r1           ;r1 = r0;                                  ;1
  849.         loda,r0 $18E8        ;r0 = *($18E8); // user RAM                ;3
  850.         bsta,un L05A0        ;gosub L05A0;                              ;3
  851.         bctr,eq L04FD        ;if == goto L04FD;                         ;2
  852.         lodi,r0 $01          ;r0 = $01;                                 ;2
  853.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  854.         lodi,r0 $0D          ;r0 = $0D;                                 ;2
  855.         stra,r0 $18E2        ;*($18E2) = r0; // user RAM                ;3
  856. L04FB:
  857.         bctr,un L052B        ;goto L052B;                               ;2
  858. ;
  859. L04FD:
  860.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  861.         stra,r0 $18E9        ;*($18E9) = r0; // user RAM                ;3
  862.         eorz    r0           ;r0 = 0;                                   ;1
  863.         bctr,un L0528        ;goto L0528;                               ;2
  864. ;
  865. L0505:
  866.         loda,r0 $18D6        ;r0 = *($18D6); // user RAM                ;3
  867.         loda,r1 $1AF4        ;r1 = *($1AF4); // user RAM                ;3
  868.         tmi,r1  $04          ;test bits %00000100 of r1;                ;2
  869.         bcfr,eq L0513        ;if != goto L0513;                         ;2
  870.         andi,r0 $70          ;r0 &= %01110000;                          ;2
  871.         bctr,un L0515        ;goto L0515;                               ;2
  872. ;
  873. L0513:
  874.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  875. L0515:
  876.         comi,r0 $00          ;compare r0 against $00;                   ;2
  877.         bcfr,eq L052B        ;if != goto L052B;                         ;2
  878.         bsta,un L05FC        ;gosub L05FC;                              ;3
  879.         bctr,eq L052B        ;if == goto L052B;                         ;2
  880.         strr,r1 *$04EA       ;*(*($04EA)) = r1; // ROM                  ;2
  881.         stra,r2 $18E9        ;*($18E9) = r2; // user RAM                ;3
  882.         stra,r0 $1AEB        ;*($1AEB) = r0; // user RAM                ;3
  883.         lodi,r0 $7F          ;r0 = $7F;                                 ;2
  884. L0528:
  885.         stra,r0 $1ADC        ;*($1ADC) = r0; // user RAM                ;3
  886. L052B:
  887.         loda,r0 $18FB        ;r0 = *($18FB); // user RAM                ;3
  888.         comi,r0 $03          ;compare r0 against $03;                   ;2
  889.         bcta,lt L0672        ;if < goto L0672;                          ;3
  890.         loda,r0 $1ADD        ;r0 = *($1ADD); // user RAM                ;3
  891.         bcta,eq L0577        ;if == goto L0577;                         ;3
  892.         addi,r0 $FF          ;r0--;                                     ;2
  893.         strr,r0 *$0534       ;*(*($0534)) = r0; // ROM                  ;2
  894.         bctr,eq L056F        ;if == goto L056F;                         ;2
  895.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  896.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  897.         comi,r0 $02          ;compare r0 against $02;                   ;2
  898.         bcfr,eq L056C        ;if != goto L056C;                         ;2
  899.         loda,r1 $1AEC        ;r1 = *($1AEC); // user RAM                ;3
  900.         lodr,r0 *$055B       ;r0 = *(*($055B)); // ROM                  ;2
  901.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  902.         strr,r0 *$055B       ;*(*($055B)) = r0; // ROM                  ;2
  903.         lodr,r0 *$0572       ;r0 = *(*($0572)); // ROM                  ;2
  904.         adda,r0 $04AE,r1     ;r0 += *($04AE + r1);                      ;3
  905.         strr,r0 *$0572       ;*(*($0572)) = r0; // ROM                  ;2
  906.         strz    r1           ;r1 = r0;                                  ;1
  907.         loda,r0 $18EA        ;r0 = *($18EA); // user RAM                ;3
  908.         bsta,un L05A0        ;gosub L05A0;                              ;3
  909.         bctr,eq L056F        ;if == goto L056F;                         ;2
  910.         lodi,r0 $01          ;r0 = $01;                                 ;2
  911.         stra,r0 $18E1        ;*($18E1) = r0; // user RAM                ;3
  912.         lodi,r0 $0D          ;r0 = $0D;                                 ;2
  913.         stra,r0 $18E2        ;*($18E2) = r0; // user RAM                ;3
  914. L056C:
  915.         bcta,un L0672        ;goto L0672;                               ;3
  916. ;
  917. L056F:
  918.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  919.         stra,r0 $18EB        ;*($18EB) = r0; // user RAM                ;3
  920.         eorz    r0           ;r0 = 0;                                   ;1
  921.         bctr,un L059B        ;goto L059B;                               ;2
  922. ;
  923. L0577:
  924.         loda,r0 $18D6        ;r0 = *($18D6); // user RAM                ;3
  925.         loda,r1 $1AF4        ;r1 = *($1AF4); // user RAM                ;3
  926.         tmi,r1  $04          ;test bits %00000100 of r1;                ;2
  927.         bcfr,eq L0585        ;if != goto L0585;                         ;2
  928.         andi,r0 $70          ;r0 &= %01110000;                          ;2
  929.         bctr,un L0587        ;goto L0587;                               ;2
  930. ;
  931. L0585:
  932.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  933. L0587:
  934.         comi,r0 $50          ;compare r0 against $50;                   ;2
  935.         bcfr,eq L056C        ;if != goto L056C;                         ;2
  936.         bsta,un L05FC        ;gosub L05FC;                              ;3
  937.         bctr,eq L056C        ;if == goto L056C;                         ;2
  938.         stra,r1 $18EA        ;*($18EA) = r1; // user RAM                ;3
  939.         stra,r2 $18EB        ;*($18EB) = r2; // user RAM                ;3
  940.         stra,r0 $1AEC        ;*($1AEC) = r0; // user RAM                ;3
  941.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  942. L059B:
  943.         stra,r0 $1ADD        ;*($1ADD) = r0; // user RAM                ;3
  944.         bctr,un L056C        ;goto L056C;                               ;2
  945. ;
  946. L05A0:
  947.         bsta,un L05D0        ;gosub L05D0;                              ;3
  948.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  949.         bctr,eq L05B7        ;if == goto L05B7;                         ;2
  950.         comi,r1 $FF          ;compare r1 against $FF;                   ;2
  951.         bctr,eq L05B1        ;if == goto L05B1;                         ;2
  952.         loda,r0 $1A00,r1     ;r0 = *($1A00 + r1);                       ;3
  953.         comi,r0 $3F          ;compare r0 against $3F;                   ;2
  954.         retc,un              ;return;                                   ;1
  955. ;
  956. L05B1:
  957.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  958.         comi,r0 $3F          ;compare r0 against $3F;                   ;2
  959.         retc,un              ;return;                                   ;1
  960. ;
  961. L05B7:
  962.         eorz    r0           ;r0 = 0;                                   ;1
  963.         retc,un              ;return;                                   ;1
  964. ;
  965. L05B9:
  966.         lodz    r1           ;r0 = r1;                                  ;1
  967.         rrl,r0               ;r0 <<= 1;                                 ;1
  968.         rrl,r0               ;r0 <<= 1;                                 ;1
  969.         rrl,r0               ;r0 <<= 1;                                 ;1
  970.         andi,r0 $78          ;r0 &= %01111000;                          ;2
  971.         subi,r0 $D5          ;r0 -= $D5;                                ;2
  972.         strz    r3           ;r3 = r0;                                  ;1
  973.         lodz    r1           ;r0 = r1;                                  ;1
  974.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  975.         rrr,r0               ;r0 >>= 1;                                 ;1
  976.         addz    r2           ;r0 += r2;                                 ;1
  977.         eori,r0 $FF          ;r0 ^= %11111111;                          ;2
  978.         addi,r0 $02          ;r0 += $02;                                ;2
  979.         strz    r2           ;r2 = r0;                                  ;1
  980.         lodz    r3           ;r0 = r3;                                  ;1
  981.         strz    r1           ;r1 = r0;                                  ;1
  982.         lodz    r2           ;r0 = r2;                                  ;1
  983.         retc,un              ;return;                                   ;1
  984. ;
  985. L05D0:
  986.         comi,r1 $B7          ;compare r1 against $B7;                   ;2
  987.         bcta,gt L05F9        ;if > goto L05F9;                          ;3
  988.         addi,r1 $D7          ;r1 += $D7;                                ;2
  989.         rrr,r1               ;r1 >>= 1;                                 ;1
  990.         rrr,r1               ;r1 >>= 1;                                 ;1
  991.         rrr,r1               ;r1 >>= 1;                                 ;1
  992.         andi,r1 $0F          ;r1 &= %00001111;                          ;2
  993.         eori,r0 $FF          ;r0 ^= %11111111;                          ;2
  994.         adda,r0 CRTCVPR      ;r0 += CRTCVPR; // hardware registers      ;3
  995.         comi,r0 $62          ;compare r0 against $62;                   ;2
  996.         bctr,gt L05EF        ;if > goto L05EF;                          ;2
  997.         addi,r0 $05          ;r0 += $05;                                ;2
  998.         rrl,r0               ;r0 <<= 1;                                 ;1
  999.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  1000.         iorz    r1           ;r0 |= r1;                                 ;1
  1001.         strz    r2           ;r2 = r0;                                  ;1
  1002.         lodi,r1 $FF          ;r1 = $FF;                                 ;2
  1003.         retc,un              ;return;                                   ;1
  1004. ;
  1005. L05EF:
  1006.         addi,r0 $9E          ;r0 += $9E;                                ;2
  1007.         rrl,r0               ;r0 <<= 1;                                 ;1
  1008.         andi,r0 $F0          ;r0 &= %11110000;                          ;2
  1009.         iorz    r1           ;r0 |= r1;                                 ;1
  1010.         strz    r1           ;r1 = r0;                                  ;1
  1011.         lodi,r2 $FF          ;r2 = $FF;                                 ;2
  1012.         retc,un              ;return;                                   ;1
  1013. ;
  1014. L05F9:
  1015.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  1016.         retc,un              ;return;                                   ;1
  1017. ;
  1018. L05FC:
  1019.         loda,r2 $18ED        ;r2 = *($18ED); // user RAM                ;3
  1020.         addz    r2           ;r0 += r2;                                 ;1
  1021.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1022.         strz    r2           ;r2 = r0;                                  ;1
  1023.         stra,r2 $18D0        ;*($18D0) = r2; // user RAM                ;3
  1024.         loda,r0 SPRITE2Y     ;r0 = SPRITE2Y; // hardware registers      ;3
  1025.         stra,r0 $18D1        ;*($18D1) = r0; // user RAM                ;3
  1026.         loda,r0 SPRITE2X     ;r0 = SPRITE2X; // hardware registers      ;3
  1027.         stra,r0 $18D2        ;*($18D2) = r0; // user RAM                ;3
  1028. L0612:
  1029.         loda,r2 $18D0        ;r2 = *($18D0); // user RAM                ;3
  1030.         loda,r0 $18D1        ;r0 = *($18D1); // user RAM                ;3
  1031.         adda,r0 $0657,r2     ;r0 += *($0657 + r2);                      ;3
  1032.         stra,r0 $18D1        ;*($18D1) = r0; // user RAM                ;3
  1033.         lodr,r0 *$0610       ;r0 = *(*($0610)); // ROM                  ;2
  1034.         adda,r0 $0655,r2     ;r0 += *($0655 + r2);                      ;3
  1035.         strr,r0 *$0610       ;*(*($0610)) = r0; // ROM                  ;2
  1036.         loda,r0 $18D1        ;r0 = *($18D1); // user RAM                ;3
  1037.         lodr,r1 *$0610       ;r1 = *(*($0610)); // ROM                  ;2
  1038.         bsta,un L05D0        ;gosub L05D0;                              ;3
  1039.         comi,r1 $FF          ;compare r1 against $FF;                   ;2
  1040.         bctr,eq L064A        ;if == goto L064A;                         ;2
  1041.         loda,r0 $1A00,r1     ;r0 = *($1A00 + r1);                       ;3
  1042.         bctr,eq L063C        ;if == goto L063C;                         ;2
  1043.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  1044.         bctr,eq L063E        ;if == goto L063E;                         ;2
  1045.         bctr,un L0653        ;goto L0653;                               ;2
  1046. L063C:
  1047.         bctr,un L0612        ;goto L0612;                               ;2
  1048. ;
  1049. L063E:
  1050.         loda,r2 $18D0        ;r2 = *($18D0); // user RAM                ;3
  1051.         loda,r0 $0660,r2     ;r0 = *($0660 + r2);                       ;3
  1052.         loda,r1 $18D1        ;r1 = *($18D1); // user RAM                ;3
  1053.         lodr,r2 *$0610       ;r2 = *(*($0610)); // ROM                  ;2
  1054.         retc,un              ;return;                                   ;1
  1055. ;
  1056. L064A:
  1057.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  1058.         bctr,eq L063C        ;if == goto L063C;                         ;2
  1059.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  1060.         bctr,eq L063E        ;if == goto L063E;                         ;2
  1061. L0653:
  1062.         eorz    r0           ;r0 = 0;                                   ;1
  1063.         retc,un              ;return;                                   ;1
  1064. ;
  1065. X0655:
  1066.         db      $00, $08
  1067. X0657:
  1068.         db      $08, $08, $00, $F8
  1069.         db      $F8, $F8, $00, $08
  1070.         db      $00
  1071. X0660:
  1072.         db      $04, $05, $06, $07
  1073.         db      $00, $01, $02, $03
  1074.         db      $08
  1075. X0669:
  1076.         db      $C8, $E0, $E0, $E0
  1077.         db      $D0, $D8, $D8, $D8
  1078.         db      $20
  1079. ;
  1080. L0672:
  1081.         loda,r0 $1ADE        ;r0 = *($1ADE); // user RAM                ;3
  1082.         bcfa,eq L0730        ;if != goto L0730;                         ;3
  1083.         loda,r0 $1ADA        ;r0 = *($1ADA); // user RAM                ;3
  1084.         comi,r0 $F7          ;compare r0 against $F7;                   ;2
  1085.         bctr,lt L068B        ;if < goto L068B;                          ;2
  1086.         loda,r1 $1AE9        ;r1 = *($1AE9); // user RAM                ;3
  1087.         loda,r0 $0669,r1     ;r0 = *($0669 + r1);                       ;3
  1088.         bsta,un L0FBC        ;gosub L0FBC;                              ;3
  1089.         bcta,un L0730        ;goto L0730;                               ;3
  1090. ;
  1091. L068B:
  1092.         loda,r0 $1AFC        ;r0 = *($1AFC); // user RAM                ;3
  1093.         lodi,r2 $01          ;r2 = $01;                                 ;2
  1094.         comi,r0 $30          ;compare r0 against $30;                   ;2
  1095.         bctr,lt L069C        ;if < goto L069C;                          ;2
  1096.         lodi,r2 $02          ;r2 = $02;                                 ;2
  1097.         comi,r0 $A0          ;compare r0 against $A0;                   ;2
  1098.         bctr,gt L069C        ;if > goto L069C;                          ;2
  1099.         lodi,r2 $00          ;r2 = $00;                                 ;2
  1100. L069C:
  1101.         loda,r0 $1AFD        ;r0 = *($1AFD); // user RAM                ;3
  1102.         comi,r0 $30          ;compare r0 against $30;                   ;2
  1103.         bcta,lt L0716        ;if < goto L0716;                          ;3
  1104.         comi,r0 $A0          ;compare r0 against $A0;                   ;2
  1105.         bcta,gt L0718        ;if > goto L0718;                          ;3
  1106. L06A9:
  1107.         loda,r0 $071D,r2     ;r0 = *($071D + r2);                       ;3
  1108.         stra,r0 $1AED        ;*($1AED) = r0; // user RAM                ;3
  1109.         comi,r0 $08          ;compare r0 against $08;                   ;2
  1110.         bcfr,eq L06BB        ;if != goto L06BB;                         ;2
  1111.         lodi,r0 $20          ;r0 = $20;                                 ;2
  1112.         bsta,un L0FBC        ;gosub L0FBC;                              ;3
  1113.         bcta,un L0713        ;goto L0713;                               ;3
  1114. ;
  1115. L06BB:
  1116.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  1117.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1118.         bcfr,eq L06E8        ;if != goto L06E8;                         ;2
  1119.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  1120.         rrr,r0               ;r0 >>= 1;                                 ;1
  1121.         rrr,r0               ;r0 >>= 1;                                 ;1
  1122.         rrr,r0               ;r0 >>= 1;                                 ;1
  1123.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1124.         strz    r2           ;r2 = r0;                                  ;1
  1125.         comi,r2 $05          ;compare r2 against $05;                   ;2
  1126.         bctr,eq L06D3        ;if == goto L06D3;                         ;2
  1127.         comi,r2 $02          ;compare r2 against $02;                   ;2
  1128.         bcfr,eq L06DA        ;if != goto L06DA;                         ;2
  1129. L06D3:
  1130.         lodi,r0 $7E          ;r0 = $7E;                                 ;2
  1131.         lodi,r3 $1F          ;r3 = $1F;                                 ;2
  1132.         bsta,un L0186        ;gosub L0186;                              ;3
  1133. L06DA:
  1134.         lodz    r2           ;r0 = r2;                                  ;1
  1135.         loda,r1 $1AED        ;r1 = *($1AED); // user RAM                ;3
  1136.         rrl,r1               ;r1 <<= 1;                                 ;1
  1137.         rrl,r1               ;r1 <<= 1;                                 ;1
  1138.         rrl,r1               ;r1 <<= 1;                                 ;1
  1139.         iorz    r1           ;r0 |= r1;                                 ;1
  1140.         loda,r0 $0E00,r0     ;r0 = *($0E00 + r0);                       ;3
  1141.         bsta,un L0FBC        ;gosub L0FBC;                              ;3
  1142. L06E8:
  1143.         loda,r0 $18D3        ;r0 = *($18D3); // user RAM                ;3
  1144.         addi,r0 $01          ;r0++;                                     ;2
  1145.         comi,r0 $07          ;compare r0 against $07;                   ;2
  1146.         strr,r0 *$06E9       ;*(*($06E9)) = r0; // ROM                  ;2
  1147.         bcfr,eq L0713        ;if != goto L0713;                         ;2
  1148.         eorz    r0           ;r0 = 0;                                   ;1
  1149.         strr,r0 *$06E9       ;*(*($06E9)) = r0; // ROM                  ;2
  1150.         loda,r1 $1AED        ;r1 = *($1AED); // user RAM                ;3
  1151.         loda,r0 SPRITE2Y     ;r0 = SPRITE2Y; // hardware registers      ;3
  1152.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  1153.         adda,r0 $04B0,r1     ;r0 += *($04B0 + r1);                      ;3
  1154.         stra,r0 SPRITE2Y     ;SPRITE2Y = r0; // hardware registers      ;3
  1155.         loda,r0 SPRITE2X     ;r0 = SPRITE2X; // hardware registers      ;3
  1156.         adda,r0 $04AE,r1     ;r0 += *($04AE + r1);                      ;3
  1157.         stra,r0 SPRITE2X     ;SPRITE2X = r0; // hardware registers      ;3
  1158.         comi,r0 $A7          ;compare r0 against $A7;                   ;2
  1159.         bcta,gt L0230        ;if > goto L0230;                          ;3
  1160. L0713:
  1161.         bcta,un L0730        ;goto L0730;                               ;3
  1162. ;
  1163. L0716:
  1164.         addi,r2 $04          ;r2 += $04;                                ;2
  1165. L0718:
  1166.         addi,r2 $04          ;r2 += $04;                                ;2
  1167.         bcta,un L06A9        ;goto L06A9;                               ;3
  1168. ;
  1169. X071D:
  1170.         db      $08, $00, $04, $08
  1171.         db      $02, $01, $03, $08
  1172.         db      $06, $07, $05, $08
  1173.         db      $08, $08, $08, $08
  1174.         db      $08, $08, $08
  1175. ;
  1176. L0730:
  1177.         loda,r0 $1AEF        ;r0 = *($1AEF); // user RAM                ;3
  1178.         comi,r0 $09          ;compare r0 against $09;                   ;2
  1179.         bctr,eq L0757        ;if == goto L0757;                         ;2
  1180.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1181.         bcfr,eq L0754        ;if != goto L0754;                         ;2
  1182.         addi,r0 $01          ;r0++;                                     ;2
  1183.         stra,r0 $1AEF        ;*($1AEF) = r0; // user RAM                ;3
  1184.         comi,r0 $05          ;compare r0 against $05;                   ;2
  1185.         bctr,lt L0754        ;if < goto L0754;                          ;2
  1186.         subi,r0 $05          ;r0 -= $05;                                ;2
  1187.         loda,r0 $07BE,r0     ;r0 = *($07BE + r0);                       ;3
  1188.         bsta,un L0FB8        ;gosub L0FB8;                              ;3
  1189.         lodi,r0 $0A          ;r0 = $0A;                                 ;2
  1190.         lodi,r3 $0D          ;r3 = $0D;                                 ;2
  1191.         bsta,un L0186        ;gosub L0186;                              ;3
  1192. L0754:
  1193.         bcta,un L07D0        ;goto L07D0;                               ;3
  1194. ;
  1195. L0757:
  1196.         loda,r0 SPRITE1Y     ;r0 = SPRITE1Y; // hardware registers      ;3
  1197.         lodr,r1 *$078F       ;r1 = *(*($078F)); // ROM                  ;2
  1198.         andi,r1 $40          ;r1 &= %01000000;                          ;2
  1199.         bctr,eq L0764        ;if == goto L0764;                         ;2
  1200.         addi,r0 $01          ;r0++;                                     ;2
  1201.         bctr,un L0766        ;goto L0766;                               ;2
  1202. ;
  1203. L0764:
  1204.         addi,r0 $FF          ;r0--;                                     ;2
  1205. L0766:
  1206.         stra,r0 SPRITE1Y     ;SPRITE1Y = r0; // hardware registers      ;3
  1207.         lodr,r0 *$078F       ;r0 = *(*($078F)); // ROM                  ;2
  1208.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  1209.         bcfr,eq L0754        ;if != goto L0754;                         ;2
  1210.         lodr,r0 *$078F       ;r0 = *(*($078F)); // ROM                  ;2
  1211.         strz    r1           ;r1 = r0;                                  ;1
  1212.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1213.         bcfr,eq L078E        ;if != goto L078E;                         ;2
  1214.         andi,r1 $38          ;r1 &= %00111000;                          ;2
  1215.         rrr,r1               ;r1 >>= 1;                                 ;1
  1216.         rrr,r1               ;r1 >>= 1;                                 ;1
  1217.         rrr,r1               ;r1 >>= 1;                                 ;1
  1218.         loda,r0 $07C3,r1     ;r0 = *($07C3 + r1);                       ;3
  1219.         bsta,un L0FB8        ;gosub L0FB8;                              ;3
  1220.         lodr,r1 *$078F       ;r1 = *(*($078F)); // ROM                  ;2
  1221.         andi,r1 $3F          ;r1 &= %00111111;                          ;2
  1222.         bcfr,eq L078E        ;if != goto L078E;                         ;2
  1223.         lodi,r0 $20          ;r0 = $20;                                 ;2
  1224.         lodi,r3 $0D          ;r3 = $0D;                                 ;2
  1225.         bsta,un L0186        ;gosub L0186;                              ;3
  1226. L078E:
  1227.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1228.         andi,r1 $0F          ;r1 &= %00001111;                          ;2
  1229.         bcfa,eq L0754        ;if != goto L0754;                         ;3
  1230.         loda,r0 SPRITE1Y     ;r0 = SPRITE1Y; // hardware registers      ;3
  1231.         coma,r0 SPRITE2Y     ;compare r0 against SPRITE2Y; // hardware registers
  1232.                                                                         ;3
  1233.         bctr,gt L07A2        ;if > goto L07A2;                          ;2
  1234.         lodi,r2 $01          ;r2 = $01;                                 ;2
  1235.         bctr,un L07A4        ;goto L07A4;                               ;2
  1236. ;
  1237. L07A2:
  1238.         lodi,r2 $FF          ;r2 = $FF;                                 ;2
  1239. L07A4:
  1240.         lodr,r0 *$0797       ;r0 = *(*($0797)); // ROM                  ;2
  1241.         addz    r2           ;r0 += r2;                                 ;1
  1242.         strr,r0 *$0797       ;*(*($0797)) = r0; // ROM                  ;2
  1243.         loda,r0 SPRITE1X     ;r0 = SPRITE1X; // hardware registers      ;3
  1244.         coma,r0 SPRITE2X     ;compare r0 against SPRITE2X; // hardware registers
  1245.                                                                         ;3
  1246.         bctr,gt L07B5        ;if > goto L07B5;                          ;2
  1247.         lodi,r2 $01          ;r2 = $01;                                 ;2
  1248.         bctr,un L07B7        ;goto L07B7;                               ;2
  1249. ;
  1250. L07B5:
  1251.         lodi,r2 $FF          ;r2 = $FF;                                 ;2
  1252. L07B7:
  1253.         lodr,r0 *$07AA       ;r0 = *(*($07AA)); // ROM                  ;2
  1254.         addz    r2           ;r0 += r2;                                 ;1
  1255.         strr,r0 *$07AA       ;*(*($07AA)) = r0; // ROM                  ;2
  1256.         bctr,un L07D0        ;goto L07D0;                               ;2
  1257. ;
  1258. X07BE:
  1259.         db      $28, $30, $38, $40
  1260.         db      $40
  1261. X07C3:
  1262.         db      $60, $58, $50, $48
  1263.         db      $60, $58, $50, $48
  1264.         db      $48
  1265. X07CC:
  1266.         db      $08, $10, $18, $20
  1267. ;
  1268. L07D0:
  1269.         lodr,r0 *$07E5       ;r0 = *(*($07E5)); // ROM                  ;2
  1270.         strz    r1           ;r1 = r0;                                  ;1
  1271.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1272.         comi,r0 $03          ;compare r0 against $03;                   ;2
  1273.         bcfr,eq L07E4        ;if != goto L07E4;                         ;2
  1274.         andi,r1 $18          ;r1 &= %00011000;                          ;2
  1275.         rrr,r1               ;r1 >>= 1;                                 ;1
  1276.         rrr,r1               ;r1 >>= 1;                                 ;1
  1277.         rrr,r1               ;r1 >>= 1;                                 ;1
  1278.         loda,r0 $07CC,r1     ;r0 = *($07CC + r1);                       ;3
  1279.         bsta,un L0FC4        ;gosub L0FC4;                              ;3
  1280. L07E4:
  1281.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  1282.         andi,r0 $3F          ;r0 &= %00111111;                          ;2
  1283.         comi,r0 $01          ;compare r0 against $01;                   ;2
  1284.         bcta,eq L089E        ;if == goto L089E;                         ;3
  1285.         loda,r1 $1AD9        ;r1 = *($1AD9); // user RAM                ;3
  1286.         loda,r0 $1AE1,r1     ;r0 = *($1AE1 + r1);                       ;3
  1287.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  1288.         bcta,eq L083E        ;if == goto L083E;                         ;3
  1289.         lodr,r0 *$07E5       ;r0 = *(*($07E5)); // ROM                  ;2
  1290.         strz    r1           ;r1 = r0;                                  ;1
  1291.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1292.         comi,r0 $03          ;compare r0 against $03;                   ;2
  1293.         bcfa,eq L083E        ;if != goto L083E;                         ;3
  1294.         loda,r0 $18D4        ;r0 = *($18D4); // user RAM                ;3
  1295.         addi,r0 $FF          ;r0--;                                     ;2
  1296.         strr,r0 *$0804       ;*(*($0804)) = r0; // ROM                  ;2
  1297.         bcta,eq L0841        ;if == goto L0841;                         ;3
  1298.         andi,r1 $18          ;r1 &= %00011000;                          ;2
  1299.         rrr,r1               ;r1 >>= 1;                                 ;1
  1300.         rrr,r1               ;r1 >>= 1;                                 ;1
  1301.         rrr,r1               ;r1 >>= 1;                                 ;1
  1302.         loda,r0 $1AEE        ;r0 = *($1AEE); // user RAM                ;3
  1303.         comi,r0 $04          ;compare r0 against $04;                   ;2
  1304.         bctr,eq L083E        ;if == goto L083E;                         ;2
  1305.         rrl,r0               ;r0 <<= 1;                                 ;1
  1306.         rrl,r0               ;r0 <<= 1;                                 ;1
  1307.         iorz    r1           ;r0 |= r1;                                 ;1
  1308.         loda,r0 $0E40,r0     ;r0 = *($0E40 + r0);                       ;3
  1309.         bsta,un L0FC0        ;gosub L0FC0;                              ;3
  1310.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1311.         andi,r1 $07          ;r1 &= %00000111;                          ;2
  1312.         comi,r1 $03          ;compare r1 against $03;                   ;2
  1313.         bcfr,eq L083E        ;if != goto L083E;                         ;2
  1314.         loda,r1 $1AEE        ;r1 = *($1AEE); // user RAM                ;3
  1315.         loda,r0 SPRITE3X     ;r0 = SPRITE3X; // hardware registers      ;3
  1316.         adda,r0 $087E,r1     ;r0 += *($087E + r1);                      ;3
  1317.         strr,r0 *$082F       ;*(*($082F)) = r0; // ROM                  ;2
  1318.         loda,r0 SPRITE3Y     ;r0 = SPRITE3Y; // hardware registers      ;3
  1319.         adda,r0 $087F,r1     ;r0 += *($087F + r1);                      ;3
  1320.         strr,r0 *$0837       ;*(*($0837)) = r0; // ROM                  ;2
  1321. L083E:
  1322.         bcta,un L098B        ;goto L098B;                               ;3
  1323. ;
  1324. L0841:
  1325.         lodr,r0 *$0837       ;r0 = *(*($0837)); // ROM                  ;2
  1326.         lodr,r1 *$082F       ;r1 = *(*($082F)); // ROM                  ;2
  1327.         bsta,un L05D0        ;gosub L05D0;                              ;3
  1328.         comi,r1 $FF          ;compare r1 against $FF;                   ;2
  1329.         bctr,eq L085F        ;if == goto L085F;                         ;2
  1330.         lodi,r0 $BC          ;r0 = $BC;                                 ;2
  1331.         stra,r0 $1A00,r1     ;*($1A00 + r1) = r0;                       ;3
  1332.         lodz    r1           ;r0 = r1;                                  ;1
  1333.         loda,r1 $1AD9        ;r1 = *($1AD9); // user RAM                ;3
  1334.         stra,r0 $1AE1,r1     ;*($1AE1 + r1) = r0;                       ;3
  1335.         lodr,r0 *$0874       ;r0 = *(*($0874)); // ROM                  ;2
  1336.         iora,r0 $0FDF,r1     ;r0 |= *($0FDF + r1);                      ;3
  1337.         bctr,un L0873        ;goto L0873;                               ;2
  1338. ;
  1339. L085F:
  1340.         lodi,r0 $BC          ;r0 = $BC;                                 ;2
  1341.         stra,r0 $1800,r2     ;*($1800 + r2) = r0;                       ;3
  1342.         lodz    r2           ;r0 = r2;                                  ;1
  1343.         loda,r1 $1AD9        ;r1 = *($1AD9); // user RAM                ;3
  1344.         stra,r0 $1AE1,r1     ;*($1AE1 + r1) = r0;                       ;3
  1345.         lodr,r2 *$0874       ;r2 = *(*($0874)); // ROM                  ;2
  1346.         loda,r0 $0FDF,r1     ;r0 = *($0FDF + r1);                       ;3
  1347.         eori,r0 $FF          ;r0 ^= %11111111;                          ;2
  1348.         andz    r2           ;r0 &= r2;                                 ;1
  1349. L0873:
  1350.         stra,r0 $18D8        ;*($18D8) = r0; // user RAM                ;3
  1351.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  1352.         stra,r0 SPRITE3X     ;SPRITE3X = r0; // hardware registers      ;3
  1353. L087B:
  1354.         bcta,un L083E        ;goto L083E;                               ;3
  1355. ;
  1356. X087E:
  1357.         db      $00
  1358. X087F:
  1359.         db      $01, $00, $FF, $00
  1360. X0883:
  1361.         db      $00
  1362. X0884:
  1363.         db      $08, $00, $F8, $00
  1364.         db      $00
  1365. ;
  1366. L0889:
  1367.         bsta,un L05B9        ;gosub L05B9;                              ;3
  1368.         stra,r0 SPRITE3Y     ;SPRITE3Y = r0; // hardware registers      ;3
  1369.         strr,r1 *$0879       ;*(*($0879)) = r1; // ROM                  ;2
  1370.         bcta,un L05D0        ;goto L05D0;                               ;3
  1371. ;
  1372. L0894:
  1373.         loda,r1 $1AD9        ;r1 = *($1AD9); // user RAM                ;3
  1374.         lodi,r0 $FF          ;r0 = $FF;                                 ;2
  1375.         stra,r0 $1AE1,r1     ;*($1AE1 + r1) = r0;                       ;3
  1376.         bctr,un L087B        ;goto L087B;                               ;2
  1377. ;
  1378. L089E:
  1379.         lodi,r0 $08          ;r0 = $08;                                 ;2
  1380.         stra,r0 $18D4        ;*($18D4) = r0; // user RAM                ;3
  1381.         lodr,r1 *$0895       ;r1 = *(*($0895)); // ROM                  ;2
  1382.         addi,r1 $01          ;r1++;                                     ;2
  1383.         andi,r1 $07          ;r1 &= %00000111;                          ;2
  1384.         strr,r1 *$0895       ;*(*($0895)) = r1; // ROM                  ;2
  1385.         loda,r0 $1AE1,r1     ;r0 = *($1AE1 + r1);                       ;3
  1386.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  1387.         bctr,eq L087B        ;if == goto L087B;                         ;2
  1388.         strz    r2           ;r2 = r0;                                  ;1
  1389.         loda,r0 $18D8        ;r0 = *($18D8); // user RAM                ;3
  1390.         anda,r0 $0FDF,r1     ;r0 &= *($0FDF + r1);                      ;3
  1391.         bctr,eq L08DB        ;if == goto L08DB;                         ;2
  1392.         loda,r0 $1A00,r2     ;r0 = *($1A00 + r2);                       ;3
  1393.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  1394. L08C0:
  1395.         bcfr,eq L0894        ;if != goto L0894;                         ;2
  1396.         lodi,r0 $BD          ;r0 = $BD;                                 ;2
  1397.         stra,r0 $1A00,r2     ;*($1A00 + r2) = r0;                       ;3
  1398.         lodz    r2           ;r0 = r2;                                  ;1
  1399.         lodi,r2 $78          ;r2 = $78;                                 ;2
  1400.         strz    r1           ;r1 = r0;                                  ;1
  1401.         bsta,un L0889        ;gosub L0889;                              ;3
  1402.         loda,r0 $1A00,r1     ;r0 = *($1A00 + r1);                       ;3
  1403.         comi,r0 $BD          ;compare r0 against $BD;                   ;2
  1404.         bcfr,eq L08C0        ;if != goto L08C0;                         ;2
  1405.         eorz    r0           ;r0 = 0;                                   ;1
  1406.         stra,r0 $1A00,r1     ;*($1A00 + r1) = r0;                       ;3
  1407.         bctr,un L08FA        ;goto L08FA;                               ;2
  1408. ;
  1409. L08DB:
  1410.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  1411.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  1412.         bcfr,eq L08F3        ;if != goto L08F3;                         ;2
  1413.         lodi,r0 $BD          ;r0 = $BD;                                 ;2
  1414.         stra,r0 $1800,r2     ;*($1800 + r2) = r0;                       ;3
  1415.         lodz    r2           ;r0 = r2;                                  ;1
  1416.         lodi,r2 $10          ;r2 = $10;                                 ;2
  1417.         strz    r1           ;r1 = r0;                                  ;1
  1418.         bsta,un L0889        ;gosub L0889;                              ;3
  1419.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  1420.         comi,r0 $BD          ;compare r0 against $BD;                   ;2
  1421. L08F3:
  1422.         bcfa,eq L0894        ;if != goto L0894;                         ;3
  1423.         eorz    r0           ;r0 = 0;                                   ;1
  1424.         stra,r0 $1800,r2     ;*($1800 + r2) = r0;                       ;3
  1425. L08FA:
  1426.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1427.         andi,r1 $80          ;r1 &= %10000000;                          ;2
  1428.         bctr,eq L0928        ;if == goto L0928;                         ;2
  1429.         loda,r0 SPRITE3X     ;r0 = SPRITE3X; // hardware registers      ;3
  1430.         suba,r0 SPRITE2X     ;r0 -= SPRITE2X; // hardware registers     ;3
  1431.         bcfr,lt L0916        ;if >= goto L0916;                         ;2
  1432.         bctr,eq L0920        ;if == goto L0920;                         ;2
  1433.         lodi,r0 $01          ;r0 = $01;                                 ;2
  1434.         bsta,un L0945        ;gosub L0945;                              ;3
  1435.         bctr,eq L0928        ;if == goto L0928;                         ;2
  1436.         lodi,r0 $01          ;r0 = $01;                                 ;2
  1437.         bctr,un L0922        ;goto L0922;                               ;2
  1438. ;
  1439. L0916:
  1440.         lodi,r0 $03          ;r0 = $03;                                 ;2
  1441.         bstr,un L0945        ;gosub L0945;                              ;2
  1442.         bctr,eq L0928        ;if == goto L0928;                         ;2
  1443.         lodi,r0 $03          ;r0 = $03;                                 ;2
  1444.         bctr,un L0922        ;goto L0922;                               ;2
  1445. ;
  1446. L0920:
  1447.         lodi,r0 $04          ;r0 = $04;                                 ;2
  1448. L0922:
  1449.         stra,r0 $1AEE        ;*($1AEE) = r0; // user RAM                ;3
  1450.         bcta,un L098B        ;goto L098B;                               ;3
  1451. ;
  1452. L0928:
  1453.         loda,r0 SPRITE3Y     ;r0 = SPRITE3Y; // hardware registers      ;3
  1454.         strz    r2           ;r2 = r0;                                  ;1
  1455.         coma,r0 SPRITE2Y     ;compare r0 against SPRITE2Y; // hardware registers
  1456.                                                                         ;3
  1457.         bctr,gt L093B        ;if > goto L093B;                          ;2
  1458.         bctr,eq L0920        ;if == goto L0920;                         ;2
  1459.         eorz    r0           ;r0 = 0;                                   ;1
  1460.         bstr,un L0945        ;gosub L0945;                              ;2
  1461.         bctr,eq L0920        ;if == goto L0920;                         ;2
  1462.         eorz    r0           ;r0 = 0;                                   ;1
  1463.         bctr,un L0922        ;goto L0922;                               ;2
  1464. ;
  1465. L093B:
  1466.         lodi,r0 $02          ;r0 = $02;                                 ;2
  1467.         bstr,un L0945        ;gosub L0945;                              ;2
  1468.         bctr,eq L0920        ;if == goto L0920;                         ;2
  1469.         lodi,r0 $02          ;r0 = $02;                                 ;2
  1470.         bctr,un L0922        ;goto L0922;                               ;2
  1471. ;
  1472. L0945:
  1473.         strz    r3           ;r3 = r0;                                  ;1
  1474.         loda,r0 SPRITE3X     ;r0 = SPRITE3X; // hardware registers      ;3
  1475.         adda,r0 $0883,r3     ;r0 += *($0883 + r3);                      ;3
  1476.         strz    r1           ;r1 = r0;                                  ;1
  1477.         comi,r0 $B0          ;compare r0 against $B0;                   ;2
  1478.         bctr,gt L0973        ;if > goto L0973;                          ;2
  1479.         loda,r0 SPRITE3Y     ;r0 = SPRITE3Y; // hardware registers      ;3
  1480.         adda,r0 $0884,r3     ;r0 += *($0884 + r3);                      ;3
  1481.         bsta,un L05D0        ;gosub L05D0;                              ;3
  1482.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  1483.         bctr,eq L0973        ;if == goto L0973;                         ;2
  1484.         comi,r1 $FF          ;compare r1 against $FF;                   ;2
  1485.         bcfr,eq L0967        ;if != goto L0967;                         ;2
  1486.         loda,r0 $1800,r2     ;r0 = *($1800 + r2);                       ;3
  1487.         bctr,un L096A        ;goto L096A;                               ;2
  1488. ;
  1489. L0967:
  1490.         loda,r0 $1A00,r1     ;r0 = *($1A00 + r1);                       ;3
  1491. L096A:
  1492.         comi,r0 $3F          ;compare r0 against $3F;                   ;2
  1493.         bctr,eq L0973        ;if == goto L0973;                         ;2
  1494.         comi,r0 $BC          ;compare r0 against $BC;                   ;2
  1495.         bctr,eq L0973        ;if == goto L0973;                         ;2
  1496.         retc,un              ;return;                                   ;1
  1497. ;
  1498. L0973:
  1499.         eorz    r0           ;r0 = 0;                                   ;1
  1500.         retc,un              ;return;                                   ;1
  1501. ;
  1502. L0975:
  1503.         lodi,r1 $04          ;r1 = $04;                                 ;2
  1504. L0977:
  1505.         loda,r0 $17FF,r1     ;r0 = *($17FF + r1);                       ;3
  1506.         addi,r0 $01          ;r0++;                                     ;2
  1507.         stra,r0 $17FF,r1     ;*($17FF + r1) = r0;                       ;3
  1508.         comi,r0 $5A          ;compare r0 against $5A;                   ;2
  1509.         bcfr,eq L098A        ;if != goto L098A;                         ;2
  1510.         lodi,r0 $50          ;r0 = $50;                                 ;2
  1511.         stra,r0 $17FF,r1     ;*($17FF + r1) = r0;                       ;3
  1512.         bdrr,r1 L0977        ;if (--r1 != 0) goto L0977;                ;2
  1513. L098A:
  1514.         retc,un              ;return;                                   ;1
  1515. ;
  1516. L098B:
  1517.         loda,r0 $1AF7        ;r0 = *($1AF7); // user RAM                ;3
  1518.         bctr,eq L0999        ;if == goto L0999;                         ;2
  1519.         addi,r0 $FF          ;r0--;                                     ;2
  1520.         strr,r0 *$098C       ;*(*($098C)) = r0; // ROM                  ;2
  1521.         bsta,un L0182        ;gosub L0182;                              ;3
  1522.         bstr,un L0975        ;gosub L0975;                              ;2
  1523. L0999:
  1524.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  1525.         bctr,eq L0999        ;if == goto L0999;                         ;2
  1526.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1527.         addi,r1 $01          ;r1++;                                     ;2
  1528.         andi,r1 $03          ;r1 &= %00000011;                          ;2
  1529.         rrl,r1               ;r1 <<= 1;                                 ;1
  1530.         loda,r0 $18E4,r1     ;r0 = *($18E4 + r1);                       ;3
  1531.         stra,r0 SPRITE0Y     ;SPRITE0Y = r0; // hardware registers      ;3
  1532.         loda,r0 $18E5,r1     ;r0 = *($18E5 + r1);                       ;3
  1533.         stra,r0 SPRITE0X     ;SPRITE0X = r0; // hardware registers      ;3
  1534.         rrr,r1               ;r1 >>= 1;                                 ;1
  1535.         lodz    r1           ;r0 = r1;                                  ;1
  1536.         strz    r2           ;r2 = r0;                                  ;1
  1537.         bcfr,eq L09BB        ;if != goto L09BB;                         ;2
  1538.         loda,r0 $18EC        ;r0 = *($18EC); // user RAM                ;3
  1539.         bcfr,eq L09C1        ;if != goto L09C1;                         ;2
  1540. L09BB:
  1541.         loda,r0 $09D0,r2     ;r0 = *($09D0 + r2);                       ;3
  1542.         bsta,un L0FB4        ;gosub L0FB4;                              ;3
  1543. L09C1:
  1544.         loda,r0 $09D4,r2     ;r0 = *($09D4 + r2);                       ;3
  1545.         loda,r1 $0DFB        ;r1 = *($0DFB); // ROM                     ;3
  1546.         andi,r1 $C7          ;r1 &= %11000111;                          ;2
  1547.         iorz    r1           ;r0 |= r1;                                 ;1
  1548.         stra,r0 $1AF5        ;*($1AF5) = r0; // user RAM                ;3
  1549.         bcta,un L003A        ;goto L003A;                               ;3
  1550. ;
  1551. X09D0:
  1552.         db      $88, $68, $70, $78
  1553. X09D4:
  1554.         db      $30, $00, $10, $08
  1555. X09D8:
  1556.         db      $00, $15, $28, $39
  1557.         db      $4E, $64, $75, $88
  1558. X09E0:
  1559.         db      $00, $27, $3B, $4C
  1560.         db      $62, $7F, $99, $B0
  1561. ;
  1562. L09E8:
  1563.         strz    r2           ;r2 = r0;                                  ;1
  1564.         strz    r3           ;r3 = r0;                                  ;1
  1565.         loda,r0 $09D8,r2     ;r0 = *($09D8 + r2);                       ;3
  1566.         strz    r1           ;r1 = r0;                                  ;1
  1567. L09EE:
  1568.         loda,r0 $0E4F,r1+    ;r0 = *($0E4F + ++r1);                     ;3
  1569.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  1570.         bctr,eq L09FD        ;if == goto L09FD;                         ;2
  1571.         strz    r2           ;r2 = r0;                                  ;1
  1572.         lodi,r0 $3F          ;r0 = $3F;                                 ;2
  1573.         stra,r0 $1800,r2     ;*($1800 + r2) = r0;                       ;3
  1574.         bctr,un L09EE        ;goto L09EE;                               ;2
  1575. ;
  1576. L09FD:
  1577.         loda,r0 $09E0,r3     ;r0 = *($09E0 + r3);                       ;3
  1578.         strz    r1           ;r1 = r0;                                  ;1
  1579. L0A01:
  1580.         loda,r0 $0EED,r1+    ;r0 = *($0EED + ++r1);                     ;3
  1581.         comi,r0 $FF          ;compare r0 against $FF;                   ;2
  1582.         bctr,eq L0A10        ;if == goto L0A10;                         ;2
  1583.         strz    r3           ;r3 = r0;                                  ;1
  1584.         lodi,r0 $3F          ;r0 = $3F;                                 ;2
  1585.         stra,r0 $1A00,r3     ;*($1A00 + r3) = r0;                       ;3
  1586.         bctr,un L0A01        ;goto L0A01;                               ;2
  1587. L0A10:
  1588.         retc,un              ;return;                                   ;1
  1589. ;
  1590. L0A11:
  1591.         loda,r0 $1815        ;r0 = *($1815); // upper screen            ;3
  1592.         stra,r0 $1AFE        ;*($1AFE) = r0; // user RAM                ;3
  1593.         loda,r0 $181F        ;r0 = *($181F); // upper screen            ;3
  1594.         stra,r0 $1AFF        ;*($1AFF) = r0; // user RAM                ;3
  1595.         bstr,un L0A38        ;gosub L0A38;                              ;2
  1596.         lodi,r1 $30          ;r1 = $30;                                 ;2
  1597. L0A21:
  1598.         loda,r0 $0DBF,r1     ;r0 = *($0DBF + r1);                       ;3
  1599.         stra,r0 $17FF,r1     ;*($17FF + r1) = r0;                       ;3
  1600.         bdrr,r1 L0A21        ;if (--r1 != 0) goto L0A21;                ;2
  1601.         bstr,un L0A45        ;gosub L0A45;                              ;2
  1602.         loda,r0 $1AFE        ;r0 = *($1AFE); // user RAM                ;3
  1603.         stra,r0 $1815        ;*($1815) = r0; // upper screen            ;3
  1604.         loda,r0 $1AFF        ;r0 = *($1AFF); // user RAM                ;3
  1605.         stra,r0 $181F        ;*($181F) = r0; // upper screen            ;3
  1606.         retc,un              ;return;                                   ;1
  1607. ;
  1608. L0A38:
  1609.         lodi,r1 $04          ;r1 = $04;                                 ;2
  1610. L0A3A:
  1611.         loda,r0 $180A,r1     ;r0 = *($180A + r1);                       ;3
  1612.         stra,r0 $1AEF,r1     ;*($1AEF + r1) = r0;                       ;3
  1613.         bdrr,r1 L0A3A        ;if (--r1 != 0) goto L0A3A;                ;2
  1614.         retc,un              ;return;                                   ;1
  1615. ;
  1616. L0A43:
  1617.         bstr,un L0A38        ;gosub L0A38;                              ;2
  1618. L0A45:
  1619.         lodi,r1 $A0          ;r1 = $A0;                                 ;2
  1620. L0A47:
  1621.         eorz    r0           ;r0 = 0;                                   ;1
  1622.         stra,r0 $182F,r1     ;*($182F + r1) = r0;                       ;3
  1623.         stra,r0 $19FF,r1     ;*($19FF + r1) = r0;                       ;3
  1624.         stra,r0 $1A2F,r1     ;*($1A2F + r1) = r0;                       ;3
  1625.         bdrr,r1 L0A47        ;if (--r1 != 0) goto L0A47;                ;2
  1626.         bsta,un L09E8        ;gosub L09E8;                              ;3
  1627.         loda,r0 $1AF8        ;r0 = *($1AF8); // user RAM                ;3
  1628.         adda,r0 $18F9        ;r0 += *($18F9); // user RAM               ;3
  1629.         stra,r0 $1AF8        ;*($1AF8) = r0; // user RAM                ;3
  1630.         andi,r0 $07          ;r0 &= %00000111;                          ;2
  1631.         bsta,un L09E8        ;gosub L09E8;                              ;3
  1632.         lodi,r1 $20          ;r1 = $20;                                 ;2
  1633. L0A66:
  1634.         eorz    r0           ;r0 = 0;                                   ;1
  1635.         stra,r0 $1ACF,r1     ;*($1ACF + r1) = r0;                       ;3
  1636.         stra,r0 $18CF,r1     ;*($18CF + r1) = r0;                       ;3
  1637.         bdrr,r1 L0A66        ;if (--r1 != 0) goto L0A66;                ;2
  1638. L0A6F:
  1639.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  1640.         bcfr,eq L0A6F        ;if != goto L0A6F;                         ;2
  1641.         lodi,r1 $80          ;r1 = $80;                                 ;2
  1642. L0A75:
  1643.         loda,r0 $0D7F,r1     ;r0 = *($0D7F + r1);                       ;3
  1644.         stra,r0 $197F,r1     ;*($197F + r1) = r0;                       ;3
  1645.         bdrr,r1 L0A75        ;if (--r1 != 0) goto L0A75;                ;2
  1646.         bsta,un L016F        ;gosub L016F;                              ;3
  1647.         loda,r0 $0DF9        ;r0 = *($0DF9); // ROM                     ;3
  1648.         stra,r0 $18E3        ;*($18E3) = r0; // user RAM                ;3
  1649.         eorz    r0           ;r0 = 0;                                   ;1
  1650.         stra,r0 CRTCVPR      ;CRTCVPR = r0; // hardware registers       ;3
  1651.         lodi,r1 $04          ;r1 = $04;                                 ;2
  1652. L0A8C:
  1653.         loda,r0 $1AEF,r1     ;r0 = *($1AEF + r1);                       ;3
  1654.         stra,r0 $180A,r1     ;*($180A + r1) = r0;                       ;3
  1655.         bdrr,r1 L0A8C        ;if (--r1 != 0) goto L0A8C;                ;2
  1656.         retc,un              ;return;                                   ;1
  1657. ;
  1658. L0A95:
  1659.         tpsu    $80          ;test bits %10000000 of PSU;               ;2
  1660.         bcfr,eq L0A95        ;if != goto L0A95;                         ;2
  1661.         loda,r0 $1AF5        ;r0 = *($1AF5); // user RAM                ;3
  1662.         stra,r0 SPRITES01CTRL
  1663.                              ;SPRITES01CTRL = r0; // hardware registers
  1664.                                                                         ;3
  1665.         lodi,r1 $02          ;r1 = $02;                                 ;2
  1666. L0AA1:
  1667.         loda,r0 $19FB,r1     ;r0 = *($19FB + r1);                       ;3
  1668.         stra,r0 $1AF9,r1     ;*($1AF9 + r1) = r0;                       ;3
  1669.         bdrr,r1 L0AA1        ;if (--r1 != 0) goto L0AA1;                ;2
  1670.         loda,r1 $18ED        ;r1 = *($18ED); // user RAM                ;3
  1671.         addi,r1 $01          ;r1++;                                     ;2
  1672.         strr,r1 *$0AAA       ;*(*($0AAA)) = r1; // ROM                  ;2
  1673.         andi,r1 $01          ;r1 &= %00000001;                          ;2
  1674.         loda,r0 P1PADDLE     ;r0 = P1PADDLE; // hardware registers      ;3
  1675.         stra,r0 $1AFC,r1     ;*($1AFC + r1) = r0;                       ;3
  1676.         loda,r0 $18E3        ;r0 = *($18E3); // user RAM                ;3
  1677.         andi,r0 $BF          ;r0 &= %10111111;                          ;2
  1678.         iora,r0 $0FFB,r1     ;r0 |= *($0FFB + r1);                      ;3
  1679.         stra,r0 $18E3        ;*($18E3) = r0; // user RAM                ;3
  1680.         stra,r0 BGCOLOUR     ;BGCOLOUR = r0; // hardware registers      ;3
  1681.         loda,r3 $1AD8        ;r3 = *($1AD8); // user RAM                ;3
  1682.         tmi,r3  $01          ;test bits %00000001 of r3;                ;2
  1683.         bcfr,eq L0ADC        ;if != goto L0ADC;                         ;2
  1684.         andi,r3 $FE          ;r3 &= %11111110;                          ;2
  1685.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1686.         loda,r2 $1AD0        ;r2 = *($1AD0); // user RAM                ;3
  1687. L0AD4:
  1688.         loda,r0 $0D00,r2-    ;r0 = *($0D00 + --r2);                     ;3
  1689.         stra,r0 $197F,r1     ;*($197F + r1) = r0;                       ;3
  1690.         bdrr,r1 L0AD4        ;if (--r1 != 0) goto L0AD4;                ;2
  1691. L0ADC:
  1692.         tmi,r3  $02          ;test bits %00000010 of r3;                ;2
  1693.         bcfr,eq L0AEF        ;if != goto L0AEF;                         ;2
  1694.         andi,r3 $FD          ;r3 &= %11111101;                          ;2
  1695.         loda,r2 $1AD1        ;r2 = *($1AD1); // user RAM                ;3
  1696.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1697. L0AE7:
  1698.         loda,r0 $0D00,r2-    ;r0 = *($0D00 + --r2);                     ;3
  1699.         stra,r0 $1987,r1     ;*($1987 + r1) = r0;                       ;3
  1700.         bdrr,r1 L0AE7        ;if (--r1 != 0) goto L0AE7;                ;2
  1701. L0AEF:
  1702.         tmi,r3  $08          ;test bits %00001000 of r3;                ;2
  1703.         bcfr,eq L0B02        ;if != goto L0B02;                         ;2
  1704.         andi,r3 $F7          ;r3 &= %11110111;                          ;2
  1705.         loda,r2 $1AD3        ;r2 = *($1AD3); // user RAM                ;3
  1706.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1707. L0AFA:
  1708.         loda,r0 $0C40,r2-    ;r0 = *($0C40 + --r2);                     ;3
  1709.         stra,r0 $1997,r1     ;*($1997 + r1) = r0;                       ;3
  1710.         bdrr,r1 L0AFA        ;if (--r1 != 0) goto L0AFA;                ;2
  1711. L0B02:
  1712.         tmi,r3  $10          ;test bits %00010000 of r3;                ;2
  1713.         bcfr,eq L0B15        ;if != goto L0B15;                         ;2
  1714.         andi,r3 $EF          ;r3 &= %11101111;                          ;2
  1715.         loda,r2 $1AD4        ;r2 = *($1AD4); // user RAM                ;3
  1716.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1717. L0B0D:
  1718.         loda,r0 $0C40,r2-    ;r0 = *($0C40 + --r2);                     ;3
  1719.         stra,r0 $199F,r1     ;*($199F + r1) = r0;                       ;3
  1720.         bdrr,r1 L0B0D        ;if (--r1 != 0) goto L0B0D;                ;2
  1721. L0B15:
  1722.         tmi,r3  $20          ;test bits %00100000 of r3;                ;2
  1723.         bcfr,eq L0B28        ;if != goto L0B28;                         ;2
  1724.         andi,r3 $DF          ;r3 &= %11011111;                          ;2
  1725.         loda,r2 $1AD5        ;r2 = *($1AD5); // user RAM                ;3
  1726.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1727. L0B20:
  1728.         loda,r0 $0D00,r2-    ;r0 = *($0D00 + --r2);                     ;3
  1729.         stra,r0 $19A7,r1     ;*($19A7 + r1) = r0;                       ;3
  1730.         bdrr,r1 L0B20        ;if (--r1 != 0) goto L0B20;                ;2
  1731. L0B28:
  1732.         tmi,r3  $04          ;test bits %00000100 of r3;                ;2
  1733.         bcfr,eq L0B3B        ;if != goto L0B3B;                         ;2
  1734.         andi,r3 $FB          ;r3 &= %11111011;                          ;2
  1735.         loda,r2 $1AD2        ;r2 = *($1AD2); // user RAM                ;3
  1736.         lodi,r1 $08          ;r1 = $08;                                 ;2
  1737. L0B33:
  1738.         loda,r0 $0B60,r2-    ;r0 = *($0B60 + --r2);                     ;3
  1739.         stra,r0 $198F,r1     ;*($198F + r1) = r0;                       ;3
  1740.         bdrr,r1 L0B33        ;if (--r1 != 0) goto L0B33;                ;2
  1741. L0B3B:
  1742.         stra,r3 $1AD8        ;*($1AD8) = r3; // user RAM                ;3
  1743.         lodr,r0 *$0B4A       ;r0 = *(*($0B4A)); // ROM                  ;2
  1744.         bcfr,eq L0B49        ;if != goto L0B49;                         ;2
  1745.         lodr,r0 *$0B47       ;r0 = *(*($0B47)); // ROM                  ;2
  1746.         addi,r0 $01          ;r0++;                                     ;2
  1747.         stra,r0 $18F9        ;*($18F9) = r0; // user RAM                ;3
  1748. L0B49:
  1749.         loda,r0 $18ED        ;r0 = *($18ED); // user RAM                ;3
  1750.         andi,r0 $03          ;r0 &= %00000011;                          ;2
  1751.         bcfr,eq L0B57        ;if != goto L0B57;                         ;2
  1752.         lodr,r0 *$0B55       ;r0 = *(*($0B55)); // ROM                  ;2
  1753.         addi,r0 $01          ;r0++;                                     ;2
  1754.         stra,r0 $18D6        ;*($18D6) = r0; // user RAM                ;3
  1755. L0B57:
  1756.         retc,un              ;return;                                   ;1
  1757. ;
  1758.         db      $FF, $FF, $FF, $FF
  1759.         db      $FF, $FF, $FF, $FF
  1760. X0B60:
  1761.         db      $A4, $78, $10, $3C
  1762.         db      $22, $1B, $00, $00
  1763.         db      $40, $52, $3C, $08
  1764.         db      $1E, $12, $73, $00
  1765.         db      $84, $A8, $70, $20
  1766.         db      $5C, $66, $10, $18
  1767.         db      $10, $7C, $54, $54
  1768.         db      $28, $28, $28, $28
  1769.         db      $10, $18, $18, $18
  1770.         db      $18, $1E, $1A, $18
  1771.         db      $20, $38, $14, $14
  1772.         db      $78, $24, $34, $14
  1773.         db      $40, $38, $68, $82
  1774.         db      $70, $48, $24, $04
  1775.         db      $10, $1C, $74, $10
  1776.         db      $F0, $88, $44, $02
  1777.         db      $10, $1C, $72, $10
  1778.         db      $F8, $84, $02, $01
  1779.         db      $08, $0E, $1A, $00
  1780.         db      $1C, $24, $43, $C0
  1781.         db      $10, $18, $34, $14
  1782.         db      $28, $2E, $22, $60
  1783.         db      $10, $18, $34, $18
  1784.         db      $18, $1C, $14, $34
  1785.         db      $08, $18, $18, $18
  1786.         db      $18, $78, $50, $18
  1787.         db      $04, $1C, $28, $28
  1788.         db      $1C, $24, $2C, $28
  1789.         db      $02, $1C, $26, $2C
  1790.         db      $0E, $12, $24, $20
  1791.         db      $08, $38, $2E, $08
  1792.         db      $0F, $11, $22, $40
  1793.         db      $08, $38, $4E, $08
  1794.         db      $1F, $21, $40, $80
  1795.         db      $10, $70, $58, $10
  1796.         db      $38, $24, $E2, $03
  1797.         db      $08, $18, $2C, $28
  1798.         db      $14, $74, $44, $06
  1799.         db      $08, $18, $2C, $18
  1800.         db      $18, $38, $28, $06
  1801.         db      $10, $7C, $54, $50
  1802.         db      $28, $08, $20, $08
  1803.         db      $10, $7C, $54, $14
  1804.         db      $28, $20, $08, $20
  1805.         db      $10, $7C, $54, $50
  1806.         db      $28, $08, $20, $08
  1807.         db      $10, $7C, $54, $14
  1808.         db      $28, $20, $08, $20
  1809.         db      $0A, $3E, $28, $20
  1810.         db      $16, $22, $26, $34
  1811.         db      $08, $37, $2A, $0C
  1812.         db      $34, $22, $32, $16
  1813.         db      $48, $3E, $0A, $1C
  1814.         db      $12, $12, $36, $00
  1815.         db      $24, $F8, $A0, $70
  1816.         db      $90, $90, $D8, $00
  1817. X0C40:
  1818.         db      $38, $6C, $FE, $BA
  1819.         db      $BA, $B8, $68, $0C
  1820.         db      $38, $5C, $FE, $BA
  1821.         db      $BA, $3A, $2C, $60
  1822.         db      $38, $6C, $FE, $BA
  1823.         db      $BA, $B8, $68, $0C
  1824.         db      $38, $74, $FE, $BA
  1825.         db      $BA, $3A, $2C, $60
  1826.         db      $38, $6C, $FE, $BA
  1827.         db      $BA, $BA, $28, $78
  1828.         db      $38, $5C, $FE, $BA
  1829.         db      $BA, $BA, $30, $70
  1830.         db      $38, $3C, $FE, $BA
  1831.         db      $BA, $BA, $18, $38
  1832.         db      $38, $5C, $FE, $BA
  1833.         db      $BA, $BA, $28, $78
  1834.         db      $38, $6C, $FE, $BA
  1835.         db      $BA, $BA, $28, $3C
  1836.         db      $38, $74, $FE, $BA
  1837.         db      $BA, $BA, $18, $1C
  1838.         db      $38, $78, $FE, $BA
  1839.         db      $BA, $BA, $30, $38
  1840.         db      $38, $74, $FE, $BA
  1841.         db      $BA, $BA, $28, $3C
  1842.         db      $38, $7C, $FE, $BA
  1843.         db      $BA, $B8, $68, $0C
  1844.         db      $38, $7C, $FE, $BA
  1845.         db      $BA, $3A, $2C, $60
  1846.         db      $38, $7C, $FE, $BA
  1847.         db      $BA, $B8, $68, $0C
  1848.         db      $38, $7C, $FE, $BA
  1849.         db      $BA, $3A, $2C, $60
  1850.         db      $38, $6C, $FE, $BA
  1851.         db      $BA, $BA, $28, $6C
  1852.         db      $28, $6C, $FE, $BA
  1853.         db      $BA, $BA, $28, $6C
  1854.         db      $38, $6C, $FE, $BA
  1855.         db      $BA, $BA, $28, $6C
  1856.         db      $38, $6C, $FE, $BA
  1857.         db      $BA, $BA, $28, $6C
  1858.         db      $38, $6C, $FE, $BA
  1859.         db      $BA, $BA, $28, $6C
  1860.         db      $38, $6C, $FE, $BA
  1861.         db      $BA, $BA, $28, $6C
  1862.         db      $08, $6B, $92, $08
  1863.         db      $69, $C8, $05, $08
  1864.         db      $5D, $75, $FF, $77
  1865.         db      $90, $D4, $F0, $C0
  1866. X0D00:
  1867.         db      $00, $00, $14, $2A
  1868.         db      $18, $5A, $00, $00
  1869.         db      $A9, $28, $CB, $D6
  1870.         db      $18, $52, $98, $A1
  1871.         db      $EF, $83, $AB, $AB
  1872.         db      $D7, $D7, $D7, $D7
  1873.         db      $FF, $FF, $EF, $83
  1874.         db      $AB, $AB, $D7, $D7
  1875.         db      $00, $00, $00, $18
  1876.         db      $18, $00, $00, $00
  1877.         db      $00, $00, $18, $3C
  1878.         db      $3C, $18, $00, $00
  1879.         db      $00, $18, $3C, $5A
  1880.         db      $7E, $66, $38, $00
  1881.         db      $18, $3C, $5A, $7E
  1882.         db      $66, $42, $3C, $18
  1883.         db      $18, $3C, $5A, $7E
  1884.         db      $66, $42, $3C, $18
  1885.         db      $18, $3C, $5A, $7E
  1886.         db      $7E, $42, $3C, $18
  1887.         db      $18, $3C, $5A, $7E
  1888.         db      $7E, $42, $7E, $18
  1889.         db      $18, $3C, $5A, $5A
  1890.         db      $7E, $7E, $3C, $18
  1891.         db      $00, $00, $3C, $3C
  1892.         db      $34, $34, $3C, $3C
  1893.         db      $00, $18, $18, $3C
  1894.         db      $3C, $18, $18, $00
  1895.         db      $00, $24, $18, $18
  1896.         db      $18, $24, $00, $00
  1897.         db      $00, $00, $00, $00
  1898.         db      $00, $00, $00
  1899. X0D7F:
  1900.         db      $00, $00, $30, $78
  1901.         db      $78, $78, $78, $30
  1902.         db      $00, $00, $00, $00
  1903.         db      $00, $00, $00, $00
  1904.         db      $00, $10, $7C, $54
  1905.         db      $54, $28, $28, $28
  1906.         db      $28, $38, $6C, $FE
  1907.         db      $BA, $BA, $28, $28
  1908.         db      $6C, $38, $6C, $FE
  1909.         db      $BA, $BA, $28, $28
  1910.         db      $6C, $82, $38, $28
  1911.         db      $28, $28, $28, $00
  1912.         db      $28, $10, $38, $5C
  1913.         db      $F6, $BE, $38, $38
  1914.         db      $38, $AA, $55, $AA
  1915.         db      $55, $AA, $55, $AA
  1916. X0DBF:
  1917.         db      $55, $50, $50, $50
  1918.         db      $50, $50, $00, $BA
  1919.         db      $BA, $BA, $BA, $00
  1920.         db      $10, $10, $10, $10
  1921.         db      $10, $A0, $9A, $A6
  1922.         db      $9E, $00, $00, $00
  1923.         db      $00, $00, $00, $00
  1924.         db      $68, $69, $6D, $00
  1925.         db      $00, $3F, $3F, $3F
  1926.         db      $3F, $3F, $3F, $3F
  1927.         db      $3F, $3F, $3F, $3F
  1928.         db      $3F, $3F, $3F, $3F
  1929.         db      $3F, $00, $00, $00
  1930.         db      $00, $00, $00, $00
  1931.         db      $00, $4F
  1932. X0DF9:
  1933.         db      $CF, $C6
  1934. X0DFB:
  1935.         db      $F4, $00, $00, $00
  1936.         db      $00
  1937. X0E00:
  1938.         db      $A8, $A8, $B0, $B0
  1939.         db      $A8, $A8, $B0, $B0
  1940.         db      $68, $70, $78, $80
  1941.         db      $88, $90, $98, $A0
  1942.         db      $68, $70, $78, $80
  1943.         db      $88, $90, $98, $A0
  1944.         db      $68, $70, $78, $80
  1945.         db      $88, $90, $98, $A0
  1946.         db      $B8, $B8, $C0, $C0
  1947.         db      $B8, $B8, $C0, $C0
  1948.         db      $28, $30, $38, $40
  1949.         db      $48, $50, $58, $60
  1950.         db      $28, $30, $38, $40
  1951.         db      $48, $50, $58, $60
  1952.         db      $28, $30, $38, $40
  1953.         db      $48, $50, $58, $60
  1954. X0E40:
  1955.         db      $68, $70, $78, $80
  1956.         db      $48, $50, $58, $60
  1957.         db      $08, $10, $18, $20
  1958.         db      $28, $30, $38
  1959. X0E4F:
  1960.         db      $40, $30, $40, $50
  1961.         db      $60, $70, $80, $90
  1962.         db      $A0, $B0, $C0, $6F
  1963.         db      $7F, $8F, $9F, $AF
  1964.         db      $BF, $BF, $3F, $4F
  1965.         db      $5F, $FF, $74, $75
  1966.         db      $76, $77, $78, $79
  1967.         db      $7A, $84, $94, $A4
  1968.         db      $B4, $C4, $BB, $BC
  1969.         db      $BD, $BE, $BE, $BE
  1970.         db      $FF, $BF, $35, $45
  1971.         db      $55, $65, $75, $85
  1972.         db      $95, $A5, $6A, $7A
  1973.         db      $8A, $9A, $CA, $AA
  1974.         db      $BA, $FF, $35, $45
  1975.         db      $55, $65, $75, $85
  1976.         db      $95, $A5, $B5, $C5
  1977.         db      $6B, $7B, $8B, $9B
  1978.         db      $AB, $BB, $CB, $68
  1979.         db      $69, $6A, $FF, $34
  1980.         db      $44, $54, $64, $74
  1981.         db      $84, $94, $A4, $B4
  1982.         db      $C4, $BE, $78, $88
  1983.         db      $98, $A8, $B8, $C8
  1984.         db      $BC, $BD, $BE, $CC
  1985.         db      $FF, $35, $45, $55
  1986.         db      $65, $75, $85, $95
  1987.         db      $A5, $B5, $C5, $B8
  1988.         db      $BC, $BD, $BE, $C8
  1989.         db      $C8, $FF, $74, $84
  1990.         db      $94, $A4, $B4, $B7
  1991.         db      $C7, $3A, $4A, $5A
  1992.         db      $6A, $7A, $8A, $9A
  1993.         db      $AA, $BA, $BD, $BE
  1994.         db      $FF, $BB, $CB, $7B
  1995.         db      $8B, $9B, $AB, $74
  1996.         db      $75, $76, $77, $78
  1997.         db      $79, $7A, $B1, $B2
  1998.         db      $B3, $B4, $B5, $B6
  1999.         db      $B7, $C7
  2000. X0EED:
  2001.         db      $FF, $C0, $C1, $C2
  2002.         db      $C3, $C4, $C5, $C6
  2003.         db      $C7, $CA, $CB, $CC
  2004.         db      $CD, $CE, $CF, $C8
  2005.         db      $C9, $00, $10, $20
  2006.         db      $30, $40, $50, $60
  2007.         db      $70, $80, $90, $A0
  2008.         db      $B0, $C0, $9F, $8F
  2009.         db      $7F, $6F, $5F, $4F
  2010.         db      $3F, $AF, $BF, $FF
  2011.         db      $74, $75, $76, $77
  2012.         db      $78, $79, $7A, $3B
  2013.         db      $3C, $3D, $3E, $04
  2014.         db      $14, $24, $34, $44
  2015.         db      $54, $64, $74, $FF
  2016.         db      $45, $55, $65, $75
  2017.         db      $85, $95, $A5, $B5
  2018.         db      $0A, $1A, $2A, $3A
  2019.         db      $4A, $5A, $6A, $7A
  2020.         db      $FF, $35, $45, $55
  2021.         db      $65, $75, $85, $95
  2022.         db      $A5, $B5, $0B, $1B
  2023.         db      $2B, $3B, $4B, $5B
  2024.         db      $6B, $7B, $8B, $88
  2025.         db      $89, $8A, $FF, $04
  2026.         db      $14, $24, $34, $44
  2027.         db      $54, $64, $74, $08
  2028.         db      $18, $28, $38, $48
  2029.         db      $58, $68, $78, $88
  2030.         db      $98, $A8, $B8, $0C
  2031.         db      $1C, $2C, $3C, $4C
  2032.         db      $5C, $6C, $7C, $FF
  2033.         db      $05, $15, $25, $35
  2034.         db      $45, $55, $65, $75
  2035.         db      $85, $86, $87, $88
  2036.         db      $89, $8A, $8B, $38
  2037.         db      $39, $3A, $3B, $3C
  2038.         db      $3D, $3E, $08, $18
  2039.         db      $28, $FF, $24, $34
  2040.         db      $44, $54, $64, $74
  2041.         db      $07, $17, $27, $37
  2042.         db      $47, $3A, $4A, $5A
  2043.         db      $6A, $7A, $8A, $9A
  2044.         db      $AA, $3D, $3E, $BA
  2045.         db      $FF, $0B, $1B, $3B
  2046.         db      $3C, $3D, $3E, $2B
  2047.         db      $07, $07, $17, $27
  2048.         db      $37, $47, $57, $67
  2049.         db      $77, $77, $78, $79
  2050.         db      $7A, $7B, $FF
  2051. ;
  2052. L0FB4:
  2053.         lodi,r1 $01          ;r1 = $01;                                 ;2
  2054.         bctr,un L0FD2        ;goto L0FD2;                               ;2
  2055. ;
  2056. L0FB8:
  2057.         lodi,r1 $02          ;r1 = $02;                                 ;2
  2058.         bctr,un L0FD2        ;goto L0FD2;                               ;2
  2059. ;
  2060. L0FBC:
  2061.         lodi,r1 $03          ;r1 = $03;                                 ;2
  2062.         bctr,un L0FD2        ;goto L0FD2;                               ;2
  2063. ;
  2064. L0FC0:
  2065.         lodi,r1 $04          ;r1 = $04;                                 ;2
  2066.         bctr,un L0FD2        ;goto L0FD2;                               ;2
  2067. ;
  2068. L0FC4:
  2069.         lodi,r1 $05          ;r1 = $05;                                 ;2
  2070.         bctr,un L0FD2        ;goto L0FD2;                               ;2
  2071. ;
  2072.         db      $05, $06, $1B, $06
  2073.         db      $05, $07, $1B, $02
  2074.         db      $05, $08
  2075. ;
  2076. L0FD2:
  2077.         stra,r0 $1ACF,r1     ;*($1ACF + r1) = r0;                       ;3
  2078.         loda,r0 $0FDE,r1     ;r0 = *($0FDE + r1);                       ;3
  2079.         iora,r0 $1AD8        ;r0 |= *($1AD8); // user RAM               ;3
  2080.         stra,r0 $1AD8        ;*($1AD8) = r0; // user RAM                ;3
  2081. X0FDE:
  2082.         retc,un              ;return;                                   ;1
  2083. ;
  2084. X0FDF:
  2085.         db      $01, $02, $04, $08
  2086.         db      $10, $20, $40, $80
  2087. ;
  2088. L0FE7:
  2089.         lodi,r1 $09          ;r1 = $09;                                 ;2
  2090. L0FE9:
  2091.         loda,r0 $0FF1,r1     ;r0 = *($0FF1 + r1);                       ;3
  2092.         stra,r0 $1A02,r1     ;*($1A02 + r1) = r0;                       ;3
  2093.         bdrr,r1 L0FE9        ;if (--r1 != 0) goto L0FE9;                ;2
  2094. X0FF1:
  2095.         retc,un              ;return;                                   ;1
  2096. ;
  2097.         db      $20, $1A, $26, $1E
  2098.         db      $00, $28, $2F, $1E
  2099.         db      $2B
  2100. X0FFB:
  2101.         db      $40, $00, $00, $00
  2102.         db      $00
  2103.  
  2104.         end
  2105.